增加ipAddress

This commit is contained in:
陈国伟 2021-08-09 09:26:01 +08:00
parent b6f77e6fff
commit a4981251d0
8 changed files with 42 additions and 88 deletions

View File

@ -23,6 +23,11 @@ namespace FastGithub.Configuration
/// </summary> /// </summary>
public bool TlsIgnoreNameMismatch { get; init; } public bool TlsIgnoreNameMismatch { get; init; }
/// <summary>
/// 使用的ip地址
/// </summary>
public string? IPAddress { get; init; }
/// <summary> /// <summary>
/// 请求超时时长 /// 请求超时时长
/// </summary> /// </summary>

View File

@ -48,6 +48,7 @@ namespace FastGithub.Http
request.SetRequestContext(new RequestContext request.SetRequestContext(new RequestContext
{ {
Host = request.RequestUri?.Host, Host = request.RequestUri?.Host,
IPAddress = this.domainConfig.IPAddress,
IsHttps = request.RequestUri?.Scheme == Uri.UriSchemeHttps, IsHttps = request.RequestUri?.Scheme == Uri.UriSchemeHttps,
TlsSniPattern = this.domainConfig.GetTlsSniPattern(), TlsSniPattern = this.domainConfig.GetTlsSniPattern(),
TlsIgnoreNameMismatch = this.domainConfig.TlsIgnoreNameMismatch TlsIgnoreNameMismatch = this.domainConfig.TlsIgnoreNameMismatch

View File

@ -160,7 +160,10 @@ namespace FastGithub.Http
if (uri.HostNameType == UriHostNameType.Dns) if (uri.HostNameType == UriHostNameType.Dns)
{ {
var address = await this.domainResolver.ResolveAsync(domain, cancellationToken); if (IPAddress.TryParse(context.IPAddress, out var address) == false)
{
address = await this.domainResolver.ResolveAsync(domain, cancellationToken);
}
uriBuilder.Host = address.ToString(); uriBuilder.Host = address.ToString();
request.Headers.Host = domain; request.Headers.Host = domain;
context.TlsSniPattern = context.TlsSniPattern.WithIPAddress(address); context.TlsSniPattern = context.TlsSniPattern.WithIPAddress(address);

View File

@ -1,4 +1,5 @@
using FastGithub.Configuration; using FastGithub.Configuration;
using System.Net;
namespace FastGithub.Http namespace FastGithub.Http
{ {
@ -17,6 +18,11 @@ namespace FastGithub.Http
/// </summary> /// </summary>
public string? Host { get; set; } public string? Host { get; set; }
/// <summary>
/// 请求的ip
/// </summary>
public string? IPAddress { get; set; }
/// <summary> /// <summary>
/// 获取或设置Sni值的表达式 /// 获取或设置Sni值的表达式
/// </summary> /// </summary>

View File

@ -11,27 +11,21 @@
"TlsSni": false "TlsSni": false
}, },
"gist.github.com": { "gist.github.com": {
"TlsSni": false,
"TlsIgnoreNameMismatch": true "TlsIgnoreNameMismatch": true
}, },
"*.github.io": { "*.github.io": {
"TlsSni": false,
"TlsIgnoreNameMismatch": true "TlsIgnoreNameMismatch": true
}, },
"*.githubapp.com": { "*.githubapp.com": {
"TlsSni": false,
"TlsIgnoreNameMismatch": true "TlsIgnoreNameMismatch": true
}, },
"*.githubassets.com": { "*.githubassets.com": {
"TlsSni": false,
"TlsIgnoreNameMismatch": true "TlsIgnoreNameMismatch": true
}, },
"*.githubusercontent.com": { "*.githubusercontent.com": {
"TlsSni": false,
"TlsIgnoreNameMismatch": true "TlsIgnoreNameMismatch": true
}, },
"*github*.s3.amazonaws.com": { "*github*.s3.amazonaws.com": {
"TlsSni": false,
"TlsIgnoreNameMismatch": true "TlsIgnoreNameMismatch": true
} }
} }

View File

@ -15,6 +15,7 @@
"TlsSniPattern": null, // SNI@domain @ipaddressip @random "TlsSniPattern": null, // SNI@domain @ipaddressip @random
"TlsIgnoreNameMismatch": false, // SNIfalse "TlsIgnoreNameMismatch": false, // SNIfalse
"Timeout": null, // "00:02:00"null "Timeout": null, // "00:02:00"null
"IPAddress": null, // ipnull
"Destination": null, // Urinull "Destination": null, // Urinull
"Response": { // Response "Response": { // Response
"StatusCode": 404, // "StatusCode": 404, //

View File

@ -2,122 +2,70 @@
"FastGithub": { "FastGithub": {
"DomainConfigs": { "DomainConfigs": {
"www.pixiv.net": { "www.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.223"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.223/"
}, },
"pixiv.net": { "pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.226"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.226/"
}, },
"ssl.pixiv.net": { "ssl.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.226"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.226/"
}, },
"accounts.pixiv.net": { "accounts.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.226"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.226/"
}, },
"touch.pixiv.net": { "touch.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.226"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.226/"
}, },
"oauth.secure.pixiv.net": { "oauth.secure.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.226"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.226/"
}, },
"i.pximg.net": { "i.pximg.net": {
"TlsSni": true, "IPAddress": "210.140.92.143"
"Destination": "https://i.pixiv.cat/"
}, },
"sketch.pixiv.net": { "sketch.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.174.37"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.174.37/"
}, },
"*.pixivsketch.net": { "*.pixivsketch.net": {
"TlsSni": false, "IPAddress": "210.140.214.211"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.214.211/"
}, },
"factory.pixiv.net": { "factory.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.180"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.180/"
}, },
"dic.pixiv.net": { "*dic.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.222"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.222/"
},
"en-dic.pixiv.net": {
"TlsSni": false,
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.222/"
}, },
"sensei.pixiv.net": { "sensei.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.222"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.222/"
}, },
"fanbox.pixiv.net": { "fanbox.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.222"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.222/"
}, },
"payment.pixiv.net.pixiv.net": { "payment.pixiv.net.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.222"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.222/"
}, },
"imgaz.pixiv.net": { "imgaz.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.145"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.145/"
}, },
"comic.pixiv.net": { "comic.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.145"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.145/"
}, },
"novel.pixiv.net": { "novel.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.145"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.145/"
}, },
"source.pixiv.net": { "source.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.145"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.145/"
}, },
"i*.pixiv.net": { "i*.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.145"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.145/"
}, },
"app-api.pixiv.net": { "app-api.pixiv.net": {
"TlsSni": false, "IPAddress": "210.140.131.218"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.218/"
},
"*.pixiv.net": {
"TlsSni": false,
"TlsIgnoreNameMismatch": true
}, },
"pixiv.org": { "pixiv.org": {
"TlsSni": false, "IPAddress": "210.140.131.158"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.158/"
}, },
"*.pixiv.org": { "*.pixiv.org": {
"TlsSni": false, "IPAddress": "210.140.131.158"
"TlsIgnoreNameMismatch": true,
"Destination": "https://210.140.131.158/"
}, },
"t.co": { "t.co": {
"Response": { "Response": {

View File

@ -26,14 +26,10 @@
"Destination": "https://fdn.geekzu.org/" "Destination": "https://fdn.geekzu.org/"
}, },
"i.imgur.com": { "i.imgur.com": {
"TlsSni": false, "IPAddress": "151.101.196.193"
"TlsIgnoreNameMismatch": true,
"Destination": "https://151.101.196.193/"
}, },
"i.stack.imgur.com": { "i.stack.imgur.com": {
"TlsSni": false, "IPAddress": "151.101.196.193"
"TlsIgnoreNameMismatch": true,
"Destination": "https://151.101.196.193/"
}, },
"lh*.googleusercontent.com": { "lh*.googleusercontent.com": {
"Response": { "Response": {