增加ipAddress
This commit is contained in:
parent
b6f77e6fff
commit
a4981251d0
@ -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>
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
"TlsSniPattern": null, // SNI表达式,@domain变量表示取域名值 @ipaddress变量表示取ip @random变量表示取随机值,其它字符保留不替换
|
"TlsSniPattern": null, // SNI表达式,@domain变量表示取域名值 @ipaddress变量表示取ip @random变量表示取随机值,其它字符保留不替换
|
||||||
"TlsIgnoreNameMismatch": false, // 是否忽略服务器证书域名不匹配,当不发送SNI时服务器可能发回域名不匹配的证书,默认为false
|
"TlsIgnoreNameMismatch": false, // 是否忽略服务器证书域名不匹配,当不发送SNI时服务器可能发回域名不匹配的证书,默认为false
|
||||||
"Timeout": null, // 请求超时时长,格式为"00:02:00",默认为null
|
"Timeout": null, // 请求超时时长,格式为"00:02:00",默认为null
|
||||||
|
"IPAddress": null, // 请求的ip,默认为null
|
||||||
"Destination": null, // 请求目的地,格式为绝对或相对Uri,默认null
|
"Destination": null, // 请求目的地,格式为绝对或相对Uri,默认null
|
||||||
"Response": { // 阻断请求直接响应,设置了Response其它配置都不起作用了
|
"Response": { // 阻断请求直接响应,设置了Response其它配置都不起作用了
|
||||||
"StatusCode": 404, // 响应的状态码
|
"StatusCode": 404, // 响应的状态码
|
||||||
|
|||||||
@ -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": {
|
||||||
|
|||||||
@ -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": {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user