Provider重命名
This commit is contained in:
parent
2390787863
commit
72fe4ece58
@ -13,14 +13,14 @@ using System.Threading.Tasks;
|
||||
namespace FastGithub.Scanner.DomainMiddlewares
|
||||
{
|
||||
[Service(ServiceLifetime.Singleton, ServiceType = typeof(IDomainAddressProvider))]
|
||||
sealed class MetaDomainAddressProvider : IDomainAddressProvider
|
||||
sealed class GithubMetaProvider : IDomainAddressProvider
|
||||
{
|
||||
private readonly IOptionsMonitor<GithubOptions> options;
|
||||
private readonly ILogger<MetaDomainAddressProvider> logger;
|
||||
private readonly ILogger<GithubMetaProvider> logger;
|
||||
|
||||
public MetaDomainAddressProvider(
|
||||
public GithubMetaProvider(
|
||||
IOptionsMonitor<GithubOptions> options,
|
||||
ILogger<MetaDomainAddressProvider> logger)
|
||||
ILogger<GithubMetaProvider> logger)
|
||||
{
|
||||
this.options = options;
|
||||
this.logger = logger;
|
||||
@ -28,7 +28,7 @@ namespace FastGithub.Scanner.DomainMiddlewares
|
||||
|
||||
public async Task<IEnumerable<DomainAddress>> CreateDomainAddressesAsync()
|
||||
{
|
||||
var setting = this.options.CurrentValue.DominAddressProvider.MetaDomainAddress;
|
||||
var setting = this.options.CurrentValue.DominAddressProviders.GithubMetaProvider;
|
||||
if (setting.Enable == false)
|
||||
{
|
||||
return Enumerable.Empty<DomainAddress>();
|
||||
@ -12,15 +12,15 @@ using System.Threading.Tasks;
|
||||
namespace FastGithub.Scanner.DomainMiddlewares
|
||||
{
|
||||
[Service(ServiceLifetime.Singleton, ServiceType = typeof(IDomainAddressProvider))]
|
||||
sealed class IPAddressComDomainAddressProvider : IDomainAddressProvider
|
||||
sealed class IPAddressComProvider : IDomainAddressProvider
|
||||
{
|
||||
private readonly IOptionsMonitor<GithubOptions> options;
|
||||
private readonly ILogger<IPAddressComDomainAddressProvider> logger;
|
||||
private readonly ILogger<IPAddressComProvider> logger;
|
||||
private readonly Uri lookupUri = new("https://www.ipaddress.com/ip-lookup");
|
||||
|
||||
public IPAddressComDomainAddressProvider(
|
||||
public IPAddressComProvider(
|
||||
IOptionsMonitor<GithubOptions> options,
|
||||
ILogger<IPAddressComDomainAddressProvider> logger)
|
||||
ILogger<IPAddressComProvider> logger)
|
||||
{
|
||||
this.options = options;
|
||||
this.logger = logger;
|
||||
@ -28,14 +28,14 @@ namespace FastGithub.Scanner.DomainMiddlewares
|
||||
|
||||
public async Task<IEnumerable<DomainAddress>> CreateDomainAddressesAsync()
|
||||
{
|
||||
var setting = this.options.CurrentValue.DominAddressProvider.IPAddressComDomainAddress;
|
||||
var setting = this.options.CurrentValue.DominAddressProviders.IPAddressComProvider;
|
||||
if (setting.Enable == false)
|
||||
{
|
||||
return Enumerable.Empty<DomainAddress>();
|
||||
}
|
||||
|
||||
using var httpClient = new HttpClient();
|
||||
var result = new List<DomainAddress>();
|
||||
var result = new HashSet<DomainAddress>();
|
||||
foreach (var domain in setting.Domains)
|
||||
{
|
||||
try
|
||||
@ -58,14 +58,14 @@ namespace FastGithub.Scanner.DomainMiddlewares
|
||||
{
|
||||
var keyValue = new KeyValuePair<string?, string?>("host", domain);
|
||||
var content = new FormUrlEncodedContent(Enumerable.Repeat(keyValue, 1));
|
||||
var request = new HttpRequestMessage
|
||||
using var request = new HttpRequestMessage
|
||||
{
|
||||
Method = HttpMethod.Post,
|
||||
RequestUri = lookupUri,
|
||||
Content = content
|
||||
};
|
||||
|
||||
var response = await httpClient.SendAsync(request);
|
||||
using var response = await httpClient.SendAsync(request);
|
||||
var html = await response.Content.ReadAsStringAsync();
|
||||
var match = Regex.Match(html, @"(?<=<h1>IP Lookup : )\d+\.\d+\.\d+\.\d+", RegexOptions.IgnoreCase);
|
||||
|
||||
@ -11,14 +11,14 @@ using System.Threading.Tasks;
|
||||
namespace FastGithub.Scanner.DomainMiddlewares
|
||||
{
|
||||
[Service(ServiceLifetime.Singleton, ServiceType = typeof(IDomainAddressProvider))]
|
||||
sealed class DnsDomainAddressProvider : IDomainAddressProvider
|
||||
sealed class PublicDnsProvider : IDomainAddressProvider
|
||||
{
|
||||
private readonly IOptionsMonitor<GithubOptions> options;
|
||||
private readonly ILogger<DnsDomainAddressProvider> logger;
|
||||
private readonly ILogger<PublicDnsProvider> logger;
|
||||
|
||||
public DnsDomainAddressProvider(
|
||||
public PublicDnsProvider(
|
||||
IOptionsMonitor<GithubOptions> options,
|
||||
ILogger<DnsDomainAddressProvider> logger)
|
||||
ILogger<PublicDnsProvider> logger)
|
||||
{
|
||||
this.options = options;
|
||||
this.logger = logger;
|
||||
@ -26,17 +26,20 @@ namespace FastGithub.Scanner.DomainMiddlewares
|
||||
|
||||
public async Task<IEnumerable<DomainAddress>> CreateDomainAddressesAsync()
|
||||
{
|
||||
var setting = this.options.CurrentValue.DominAddressProvider.DnsDomainAddress;
|
||||
var setting = this.options.CurrentValue.DominAddressProviders.PublicDnsProvider;
|
||||
if (setting.Enable == false)
|
||||
{
|
||||
return Enumerable.Empty<DomainAddress>();
|
||||
}
|
||||
|
||||
var result = new List<DomainAddress>();
|
||||
var result = new HashSet<DomainAddress>();
|
||||
foreach (var dns in setting.Dnss)
|
||||
{
|
||||
var domainAddresses = await this.LookupAsync(dns, setting.Domains);
|
||||
result.AddRange(domainAddresses);
|
||||
foreach (var item in domainAddresses)
|
||||
{
|
||||
result.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -7,7 +7,7 @@ namespace FastGithub.Scanner
|
||||
{
|
||||
public ScanSetting Scan { get; set; } = new ScanSetting();
|
||||
|
||||
public DomainAddressProviderSetting DominAddressProvider { get; set; } = new DomainAddressProviderSetting();
|
||||
public DomainAddressProvidersSetting DominAddressProviders { get; set; } = new DomainAddressProvidersSetting();
|
||||
|
||||
public class ScanSetting
|
||||
{
|
||||
@ -20,13 +20,26 @@ namespace FastGithub.Scanner
|
||||
public TimeSpan HttpsScanTimeout { get; set; } = TimeSpan.FromSeconds(2d);
|
||||
}
|
||||
|
||||
public class DomainAddressProviderSetting
|
||||
public class DomainAddressProvidersSetting
|
||||
{
|
||||
public DnsDomainAddressSetting DnsDomainAddress { get; set; } = new DnsDomainAddressSetting();
|
||||
public MetaDoaminAddressSetting MetaDomainAddress { get; set; } = new MetaDoaminAddressSetting();
|
||||
public IPAddressComDomainAddressSetting IPAddressComDomainAddress { get; set; } = new IPAddressComDomainAddressSetting();
|
||||
public GithubMetaProviderSetting GithubMetaProvider { get; set; } = new GithubMetaProviderSetting();
|
||||
public IPAddressComProviderSetting IPAddressComProvider { get; set; } = new IPAddressComProviderSetting();
|
||||
public PublicDnsProviderSetting PublicDnsProvider { get; set; } = new PublicDnsProviderSetting();
|
||||
|
||||
public class DnsDomainAddressSetting
|
||||
public class GithubMetaProviderSetting
|
||||
{
|
||||
public bool Enable { get; set; } = true;
|
||||
|
||||
public Uri MetaUri { get; set; } = new Uri("https://gitee.com/jiulang/fast-github/raw/master/FastGithub/meta.json");
|
||||
}
|
||||
|
||||
public class IPAddressComProviderSetting
|
||||
{
|
||||
public bool Enable { get; set; } = true;
|
||||
|
||||
public string[] Domains { get; set; } = Array.Empty<string>();
|
||||
}
|
||||
public class PublicDnsProviderSetting
|
||||
{
|
||||
public bool Enable { get; set; } = true;
|
||||
|
||||
@ -34,20 +47,6 @@ namespace FastGithub.Scanner
|
||||
|
||||
public string[] Domains { get; set; } = Array.Empty<string>();
|
||||
}
|
||||
|
||||
public class MetaDoaminAddressSetting
|
||||
{
|
||||
public bool Enable { get; set; } = true;
|
||||
|
||||
public Uri MetaUri { get; set; } = new Uri("https://gitee.com/jiulang/fast-github/raw/master/FastGithub/meta.json");
|
||||
}
|
||||
|
||||
public class IPAddressComDomainAddressSetting
|
||||
{
|
||||
public bool Enable { get; set; } = true;
|
||||
|
||||
public string[] Domains { get; set; } = Array.Empty<string>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,12 +10,13 @@
|
||||
"TcpScanTimeout": "00:00:01", // tcp扫描超时时间
|
||||
"HttpsScanTimeout": "00:00:02" // https扫描超时时间
|
||||
},
|
||||
"DominAddressProvider": {
|
||||
"MetaDomainAddress": {
|
||||
"DominAddressProviders": {
|
||||
"GithubMetaProvider": {
|
||||
"Enable": true,
|
||||
"MetaUri": "https://gitee.com/jiulang/fast-github/raw/master/FastGithub/meta.json" // meta×ÊÔ´uri
|
||||
// "MetaUri": "https://api.github.com/meta", // meta×ÊÔ´uri
|
||||
"MetaUri": "https://gitee.com/jiulang/fast-github/raw/master/FastGithub/meta.json"
|
||||
},
|
||||
"IPAddressComDomainAddress": {
|
||||
"IPAddressComProvider": {
|
||||
"Enable": true,
|
||||
"Domains": [
|
||||
"github.com",
|
||||
@ -23,21 +24,17 @@
|
||||
"github.githubassets.com"
|
||||
]
|
||||
},
|
||||
"DnsDomainAddress": {
|
||||
"PublicDnsProvider": {
|
||||
"Enable": true,
|
||||
"Dnss": [
|
||||
"119.29.29.29",
|
||||
"180.76.76.76",
|
||||
"8.8.8.8",
|
||||
"8.8.4.4",
|
||||
"114.114.114.114",
|
||||
"114.114.115.115",
|
||||
"180.76.76.76",
|
||||
"119.29.29.29",
|
||||
"223.5.5.5",
|
||||
"223.6.6.6",
|
||||
"1.2.4.8",
|
||||
"210.2.4.8",
|
||||
"208.67.220.220",
|
||||
"208.67.222.222"
|
||||
"123.125.81.6"
|
||||
],
|
||||
"Domains": [
|
||||
"github.com",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user