增加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>
public bool TlsIgnoreNameMismatch { get; init; }
/// <summary>
/// 使用的ip地址
/// </summary>
public string? IPAddress { get; init; }
/// <summary>
/// 请求超时时长
/// </summary>

View File

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

View File

@ -160,7 +160,10 @@ namespace FastGithub.Http
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();
request.Headers.Host = domain;
context.TlsSniPattern = context.TlsSniPattern.WithIPAddress(address);

View File

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

View File

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

View File

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

View File

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

View File

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