using System;
namespace FastGithub.Scanner
{
///
/// github选项
///
[Options("Github")]
sealed class GithubOptions
{
///
/// 扫描配置
///
public ScanSetting Scan { get; set; } = new ScanSetting();
///
/// 域名与ip关系提供者配置
///
public DomainAddressProvidersSetting DominAddressProviders { get; set; } = new DomainAddressProvidersSetting();
///
/// 扫描配置
///
public class ScanSetting
{
public TimeSpan FullScanInterval = TimeSpan.FromHours(2d);
public TimeSpan ResultScanInterval = TimeSpan.FromMinutes(1d);
public TimeSpan TcpScanTimeout { get; set; } = TimeSpan.FromSeconds(1d);
public TimeSpan HttpsScanTimeout { get; set; } = TimeSpan.FromSeconds(2d);
}
///
/// 域名与ip关系提供者配置
///
public class DomainAddressProvidersSetting
{
public GithubMetaProviderSetting GithubMetaProvider { get; set; } = new GithubMetaProviderSetting();
public IPAddressComProviderSetting IPAddressComProvider { get; set; } = new IPAddressComProviderSetting();
public PublicDnsProviderSetting PublicDnsProvider { get; set; } = new PublicDnsProviderSetting();
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();
}
public class PublicDnsProviderSetting
{
public bool Enable { get; set; } = true;
public string[] Dnss { get; set; } = Array.Empty();
public string[] Domains { get; set; } = Array.Empty();
}
}
}
}