Update Global.cs
Some checks are pending
release Linux / build (Release) (push) Waiting to run
release Linux / rpm (push) Blocked by required conditions
release macOS / build (Release) (push) Waiting to run
release Windows desktop (Avalonia UI) / build (Release) (push) Waiting to run
release Windows / build (Release) (push) Waiting to run

This commit is contained in:
2dust 2026-01-08 17:15:59 +08:00
parent f3b894015e
commit abd962ab31

View file

@ -93,228 +93,230 @@ public class Global
public static readonly List<string> IEProxyProtocols = public static readonly List<string> IEProxyProtocols =
[ [
"{ip}:{http_port}", "{ip}:{http_port}",
"socks={ip}:{socks_port}", "socks={ip}:{socks_port}",
"http={ip}:{http_port};https={ip}:{http_port};ftp={ip}:{http_port};socks={ip}:{socks_port}", "http={ip}:{http_port};https={ip}:{http_port};ftp={ip}:{http_port};socks={ip}:{socks_port}",
"http=http://{ip}:{http_port};https=http://{ip}:{http_port}", "http=http://{ip}:{http_port};https=http://{ip}:{http_port}",
"" ""
]; ];
public static readonly List<string> SubConvertUrls = public static readonly List<string> SubConvertUrls =
[ [
@"https://sub.xeton.dev/sub?url={0}", @"https://sub.xeton.dev/sub?url={0}",
@"https://api.dler.io/sub?url={0}", @"https://api.dler.io/sub?url={0}",
@"http://127.0.0.1:25500/sub?url={0}", @"http://127.0.0.1:25500/sub?url={0}",
"" ""
]; ];
public static readonly List<string> SubConvertConfig = public static readonly List<string> SubConvertConfig =
[@"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online.ini"]; [
@"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online.ini"
];
public static readonly List<string> SubConvertTargets = public static readonly List<string> SubConvertTargets =
[ [
"", "",
"mixed", "mixed",
"v2ray", "v2ray",
"clash", "clash",
"ss" "ss"
]; ];
public static readonly List<string> SpeedTestUrls = public static readonly List<string> SpeedTestUrls =
[ [
@"https://cachefly.cachefly.net/50mb.test", @"https://cachefly.cachefly.net/50mb.test",
@"https://speed.cloudflare.com/__down?bytes=10000000", @"https://speed.cloudflare.com/__down?bytes=10000000",
@"https://speed.cloudflare.com/__down?bytes=50000000", @"https://speed.cloudflare.com/__down?bytes=50000000",
@"https://speed.cloudflare.com/__down?bytes=100000000", @"https://speed.cloudflare.com/__down?bytes=100000000",
]; ];
public static readonly List<string> SpeedPingTestUrls = public static readonly List<string> SpeedPingTestUrls =
[ [
@"https://www.google.com/generate_204", @"https://www.google.com/generate_204",
@"https://www.gstatic.com/generate_204", @"https://www.gstatic.com/generate_204",
@"https://www.apple.com/library/test/success.html", @"https://www.apple.com/library/test/success.html",
@"http://www.msftconnecttest.com/connecttest.txt" @"http://www.msftconnecttest.com/connecttest.txt"
]; ];
public static readonly List<string> GeoFilesSources = public static readonly List<string> GeoFilesSources =
[ [
"", "",
@"https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/{0}.dat", @"https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/{0}.dat",
@"https://github.com/Chocolate4U/Iran-v2ray-rules/releases/latest/download/{0}.dat" @"https://github.com/Chocolate4U/Iran-v2ray-rules/releases/latest/download/{0}.dat"
]; ];
public static readonly List<string> SingboxRulesetSources = public static readonly List<string> SingboxRulesetSources =
[ [
"", "",
@"https://raw.githubusercontent.com/runetfreedom/russia-v2ray-rules-dat/release/sing-box/rule-set-{0}/{1}.srs", @"https://raw.githubusercontent.com/runetfreedom/russia-v2ray-rules-dat/release/sing-box/rule-set-{0}/{1}.srs",
@"https://raw.githubusercontent.com/chocolate4u/Iran-sing-box-rules/rule-set/{1}.srs" @"https://raw.githubusercontent.com/chocolate4u/Iran-sing-box-rules/rule-set/{1}.srs"
]; ];
public static readonly List<string> RoutingRulesSources = public static readonly List<string> RoutingRulesSources =
[ [
"", "",
@"https://raw.githubusercontent.com/runetfreedom/russia-v2ray-custom-routing-list/main/v2rayN/template.json", @"https://raw.githubusercontent.com/runetfreedom/russia-v2ray-custom-routing-list/main/v2rayN/template.json",
@"https://raw.githubusercontent.com/Chocolate4U/Iran-v2ray-rules/main/v2rayN/template.json" @"https://raw.githubusercontent.com/Chocolate4U/Iran-v2ray-rules/main/v2rayN/template.json"
]; ];
public static readonly List<string> DNSTemplateSources = public static readonly List<string> DNSTemplateSources =
[ [
"", "",
@"https://raw.githubusercontent.com/runetfreedom/russia-v2ray-custom-routing-list/main/v2rayN/", @"https://raw.githubusercontent.com/runetfreedom/russia-v2ray-custom-routing-list/main/v2rayN/",
@"https://raw.githubusercontent.com/Chocolate4U/Iran-v2ray-rules/main/v2rayN/" @"https://raw.githubusercontent.com/Chocolate4U/Iran-v2ray-rules/main/v2rayN/"
]; ];
public static readonly Dictionary<string, string> UserAgentTexts = new() public static readonly Dictionary<string, string> UserAgentTexts = new()
{ {
{"chrome","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36" }, {"chrome","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36" },
{"firefox","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0" }, {"firefox","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0" },
{"safari","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15" }, {"safari","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15" },
{"edge","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.70" }, {"edge","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.70" },
{"none",""} {"none",""}
}; };
public const string Hysteria2ProtocolShare = "hy2://"; public const string Hysteria2ProtocolShare = "hy2://";
public static readonly Dictionary<EConfigType, string> ProtocolShares = new() public static readonly Dictionary<EConfigType, string> ProtocolShares = new()
{ {
{ EConfigType.VMess, "vmess://" }, { EConfigType.VMess, "vmess://" },
{ EConfigType.Shadowsocks, "ss://" }, { EConfigType.Shadowsocks, "ss://" },
{ EConfigType.SOCKS, "socks://" }, { EConfigType.SOCKS, "socks://" },
{ EConfigType.VLESS, "vless://" }, { EConfigType.VLESS, "vless://" },
{ EConfigType.Trojan, "trojan://" }, { EConfigType.Trojan, "trojan://" },
{ EConfigType.Hysteria2, "hysteria2://" }, { EConfigType.Hysteria2, "hysteria2://" },
{ EConfigType.TUIC, "tuic://" }, { EConfigType.TUIC, "tuic://" },
{ EConfigType.WireGuard, "wireguard://" }, { EConfigType.WireGuard, "wireguard://" },
{ EConfigType.Anytls, "anytls://" } { EConfigType.Anytls, "anytls://" }
}; };
public static readonly Dictionary<EConfigType, string> ProtocolTypes = new() public static readonly Dictionary<EConfigType, string> ProtocolTypes = new()
{ {
{ EConfigType.VMess, "vmess" }, { EConfigType.VMess, "vmess" },
{ EConfigType.Shadowsocks, "shadowsocks" }, { EConfigType.Shadowsocks, "shadowsocks" },
{ EConfigType.SOCKS, "socks" }, { EConfigType.SOCKS, "socks" },
{ EConfigType.HTTP, "http" }, { EConfigType.HTTP, "http" },
{ EConfigType.VLESS, "vless" }, { EConfigType.VLESS, "vless" },
{ EConfigType.Trojan, "trojan" }, { EConfigType.Trojan, "trojan" },
{ EConfigType.Hysteria2, "hysteria2" }, { EConfigType.Hysteria2, "hysteria2" },
{ EConfigType.TUIC, "tuic" }, { EConfigType.TUIC, "tuic" },
{ EConfigType.WireGuard, "wireguard" }, { EConfigType.WireGuard, "wireguard" },
{ EConfigType.Anytls, "anytls" } { EConfigType.Anytls, "anytls" }
}; };
public static readonly List<string> VmessSecurities = public static readonly List<string> VmessSecurities =
[ [
"aes-128-gcm", "aes-128-gcm",
"chacha20-poly1305", "chacha20-poly1305",
"auto", "auto",
"none", "none",
"zero" "zero"
]; ];
public static readonly List<string> SsSecurities = public static readonly List<string> SsSecurities =
[ [
"aes-256-gcm", "aes-256-gcm",
"aes-128-gcm", "aes-128-gcm",
"chacha20-poly1305", "chacha20-poly1305",
"chacha20-ietf-poly1305", "chacha20-ietf-poly1305",
"none", "none",
"plain" "plain"
]; ];
public static readonly List<string> SsSecuritiesInXray = public static readonly List<string> SsSecuritiesInXray =
[ [
"aes-256-gcm", "aes-256-gcm",
"aes-128-gcm", "aes-128-gcm",
"chacha20-poly1305", "chacha20-poly1305",
"chacha20-ietf-poly1305", "chacha20-ietf-poly1305",
"xchacha20-poly1305", "xchacha20-poly1305",
"xchacha20-ietf-poly1305", "xchacha20-ietf-poly1305",
"none", "none",
"plain", "plain",
"2022-blake3-aes-128-gcm", "2022-blake3-aes-128-gcm",
"2022-blake3-aes-256-gcm", "2022-blake3-aes-256-gcm",
"2022-blake3-chacha20-poly1305" "2022-blake3-chacha20-poly1305"
]; ];
public static readonly List<string> SsSecuritiesInSingbox = public static readonly List<string> SsSecuritiesInSingbox =
[ [
"aes-256-gcm", "aes-256-gcm",
"aes-192-gcm", "aes-192-gcm",
"aes-128-gcm", "aes-128-gcm",
"chacha20-ietf-poly1305", "chacha20-ietf-poly1305",
"xchacha20-ietf-poly1305", "xchacha20-ietf-poly1305",
"none", "none",
"2022-blake3-aes-128-gcm", "2022-blake3-aes-128-gcm",
"2022-blake3-aes-256-gcm", "2022-blake3-aes-256-gcm",
"2022-blake3-chacha20-poly1305", "2022-blake3-chacha20-poly1305",
"aes-128-ctr", "aes-128-ctr",
"aes-192-ctr", "aes-192-ctr",
"aes-256-ctr", "aes-256-ctr",
"aes-128-cfb", "aes-128-cfb",
"aes-192-cfb", "aes-192-cfb",
"aes-256-cfb", "aes-256-cfb",
"rc4-md5", "rc4-md5",
"chacha20-ietf", "chacha20-ietf",
"xchacha20" "xchacha20"
]; ];
public static readonly List<string> Flows = public static readonly List<string> Flows =
[ [
"", "",
"xtls-rprx-vision", "xtls-rprx-vision",
"xtls-rprx-vision-udp443" "xtls-rprx-vision-udp443"
]; ];
public static readonly List<string> Networks = public static readonly List<string> Networks =
[ [
"tcp", "tcp",
"kcp", "kcp",
"ws", "ws",
"httpupgrade", "httpupgrade",
"xhttp", "xhttp",
"h2", "h2",
"quic", "quic",
"grpc" "grpc"
]; ];
public static readonly List<string> KcpHeaderTypes = public static readonly List<string> KcpHeaderTypes =
[ [
"srtp", "srtp",
"utp", "utp",
"wechat-video", "wechat-video",
"dtls", "dtls",
"wireguard", "wireguard",
"dns" "dns"
]; ];
public static readonly List<string> CoreTypes = public static readonly List<string> CoreTypes =
[ [
"Xray", "Xray",
"sing_box" "sing_box"
]; ];
public static readonly HashSet<EConfigType> XraySupportConfigType = public static readonly HashSet<EConfigType> XraySupportConfigType =
[ [
EConfigType.VMess, EConfigType.VMess,
EConfigType.VLESS, EConfigType.VLESS,
EConfigType.Shadowsocks, EConfigType.Shadowsocks,
EConfigType.Trojan, EConfigType.Trojan,
EConfigType.WireGuard, EConfigType.WireGuard,
EConfigType.SOCKS, EConfigType.SOCKS,
EConfigType.HTTP, EConfigType.HTTP,
]; ];
public static readonly HashSet<EConfigType> SingboxSupportConfigType = public static readonly HashSet<EConfigType> SingboxSupportConfigType =
[ [
EConfigType.VMess, EConfigType.VMess,
EConfigType.VLESS, EConfigType.VLESS,
EConfigType.Shadowsocks, EConfigType.Shadowsocks,
EConfigType.Trojan, EConfigType.Trojan,
EConfigType.Hysteria2, EConfigType.Hysteria2,
EConfigType.TUIC, EConfigType.TUIC,
EConfigType.Anytls, EConfigType.Anytls,
EConfigType.WireGuard, EConfigType.WireGuard,
EConfigType.SOCKS, EConfigType.SOCKS,
EConfigType.HTTP, EConfigType.HTTP,
]; ];
public static readonly HashSet<EConfigType> SingboxOnlyConfigType = SingboxSupportConfigType.Except(XraySupportConfigType).ToHashSet(); public static readonly HashSet<EConfigType> SingboxOnlyConfigType = SingboxSupportConfigType.Except(XraySupportConfigType).ToHashSet();
@ -329,129 +331,129 @@ public class Global
public static readonly List<string> DomainStrategies4Singbox = public static readonly List<string> DomainStrategies4Singbox =
[ [
"ipv4_only", "ipv4_only",
"ipv6_only", "ipv6_only",
"prefer_ipv4", "prefer_ipv4",
"prefer_ipv6", "prefer_ipv6",
"" ""
]; ];
public static readonly List<string> Fingerprints = public static readonly List<string> Fingerprints =
[ [
"chrome", "chrome",
"firefox", "firefox",
"safari", "safari",
"ios", "ios",
"android", "android",
"edge", "edge",
"360", "360",
"qq", "qq",
"random", "random",
"randomized", "randomized",
"" ""
]; ];
public static readonly List<string> UserAgent = public static readonly List<string> UserAgent =
[ [
"chrome", "chrome",
"firefox", "firefox",
"safari", "safari",
"edge", "edge",
"none" "none"
]; ];
public static readonly List<string> XhttpMode = public static readonly List<string> XhttpMode =
[ [
"auto", "auto",
"packet-up", "packet-up",
"stream-up", "stream-up",
"stream-one" "stream-one"
]; ];
public static readonly List<string> AllowInsecure = public static readonly List<string> AllowInsecure =
[ [
"true", "true",
"false", "false",
"" ""
]; ];
public static readonly List<string> DomainStrategy4Freedoms = public static readonly List<string> DomainStrategy4Freedoms =
[ [
"AsIs", "AsIs",
"UseIP", "UseIP",
"UseIPv4", "UseIPv4",
"UseIPv6", "UseIPv6",
"" ""
]; ];
public static readonly List<string> SingboxDomainStrategy4Out = public static readonly List<string> SingboxDomainStrategy4Out =
[ [
"", "",
"ipv4_only", "ipv4_only",
"prefer_ipv4", "prefer_ipv4",
"prefer_ipv6", "prefer_ipv6",
"ipv6_only" "ipv6_only"
]; ];
public static readonly List<string> DomainDirectDNSAddress = public static readonly List<string> DomainDirectDNSAddress =
[ [
"https://dns.alidns.com/dns-query", "https://dns.alidns.com/dns-query",
"https://doh.pub/dns-query", "https://doh.pub/dns-query",
"223.5.5.5", "223.5.5.5",
"119.29.29.29", "119.29.29.29",
"localhost" "localhost"
]; ];
public static readonly List<string> DomainRemoteDNSAddress = public static readonly List<string> DomainRemoteDNSAddress =
[ [
"https://cloudflare-dns.com/dns-query", "https://cloudflare-dns.com/dns-query",
"https://dns.cloudflare.com/dns-query", "https://dns.cloudflare.com/dns-query",
"https://dns.google/dns-query", "https://dns.google/dns-query",
"https://doh.dns.sb/dns-query", "https://doh.dns.sb/dns-query",
"https://doh.opendns.com/dns-query", "https://doh.opendns.com/dns-query",
"https://common.dot.dns.yandex.net", "https://common.dot.dns.yandex.net",
"8.8.8.8", "8.8.8.8",
"1.1.1.1", "1.1.1.1",
"185.222.222.222", "185.222.222.222",
"208.67.222.222", "208.67.222.222",
"77.88.8.8" "77.88.8.8"
]; ];
public static readonly List<string> DomainPureIPDNSAddress = public static readonly List<string> DomainPureIPDNSAddress =
[ [
"223.5.5.5", "223.5.5.5",
"119.29.29.29", "119.29.29.29",
"localhost" "localhost"
]; ];
public static readonly List<string> Languages = public static readonly List<string> Languages =
[ [
"zh-Hans", "zh-Hans",
"zh-Hant", "zh-Hant",
"en", "en",
"fa-Ir", "fa-Ir",
"fr", "fr",
"ru", "ru",
"hu" "hu"
]; ];
public static readonly List<string> Alpns = public static readonly List<string> Alpns =
[ [
"h3", "h3",
"h2", "h2",
"http/1.1", "http/1.1",
"h3,h2", "h3,h2",
"h2,http/1.1", "h2,http/1.1",
"h3,h2,http/1.1", "h3,h2,http/1.1",
"" ""
]; ];
public static readonly List<string> LogLevels = public static readonly List<string> LogLevels =
[ [
"debug", "debug",
"info", "info",
"warning", "warning",
"error", "error",
"none" "none"
]; ];
public static readonly Dictionary<string, string> LogLevelColors = new() public static readonly Dictionary<string, string> LogLevelColors = new()
@ -465,32 +467,32 @@ public class Global
public static readonly List<string> InboundTags = public static readonly List<string> InboundTags =
[ [
"socks", "socks",
"socks2", "socks2",
"socks3" "socks3"
]; ];
public static readonly List<string> RuleProtocols = public static readonly List<string> RuleProtocols =
[ [
"http", "http",
"tls", "tls",
"bittorrent" "bittorrent"
]; ];
public static readonly List<string> RuleNetworks = public static readonly List<string> RuleNetworks =
[ [
"", "",
"tcp", "tcp",
"udp", "udp",
"tcp,udp" "tcp,udp"
]; ];
public static readonly List<string> destOverrideProtocols = public static readonly List<string> destOverrideProtocols =
[ [
"http", "http",
"tls", "tls",
"quic", "quic",
"fakedns", "fakedns",
"fakedns+others" "fakedns+others"
]; ];
public static readonly List<int> TunMtus = public static readonly List<int> TunMtus =
@ -506,83 +508,83 @@ public class Global
public static readonly List<string> TunStacks = public static readonly List<string> TunStacks =
[ [
"gvisor", "gvisor",
"system", "system",
"mixed" "mixed"
]; ];
public static readonly List<string> PresetMsgFilters = public static readonly List<string> PresetMsgFilters =
[ [
"proxy", "proxy",
"direct", "direct",
"block", "block",
"" ""
]; ];
public static readonly List<string> SingboxMuxs = public static readonly List<string> SingboxMuxs =
[ [
"h2mux", "h2mux",
"smux", "smux",
"yamux", "yamux",
"" ""
]; ];
public static readonly List<string> TuicCongestionControls = public static readonly List<string> TuicCongestionControls =
[ [
"cubic", "cubic",
"new_reno", "new_reno",
"bbr" "bbr"
]; ];
public static readonly List<string> allowSelectType = public static readonly List<string> allowSelectType =
[ [
"selector", "selector",
"urltest", "urltest",
"loadbalance", "loadbalance",
"fallback" "fallback"
]; ];
public static readonly List<string> notAllowTestType = public static readonly List<string> notAllowTestType =
[ [
"selector", "selector",
"urltest", "urltest",
"direct", "direct",
"reject", "reject",
"compatible", "compatible",
"pass", "pass",
"loadbalance", "loadbalance",
"fallback" "fallback"
]; ];
public static readonly List<string> proxyVehicleType = public static readonly List<string> proxyVehicleType =
[ [
"file", "file",
"http" "http"
]; ];
public static readonly Dictionary<ECoreType, string> CoreUrls = new() public static readonly Dictionary<ECoreType, string> CoreUrls = new()
{ {
{ ECoreType.v2fly, "v2fly/v2ray-core" }, { ECoreType.v2fly, "v2fly/v2ray-core" },
{ ECoreType.v2fly_v5, "v2fly/v2ray-core" }, { ECoreType.v2fly_v5, "v2fly/v2ray-core" },
{ ECoreType.Xray, "XTLS/Xray-core" }, { ECoreType.Xray, "XTLS/Xray-core" },
{ ECoreType.sing_box, "SagerNet/sing-box" }, { ECoreType.sing_box, "SagerNet/sing-box" },
{ ECoreType.mihomo, "MetaCubeX/mihomo" }, { ECoreType.mihomo, "MetaCubeX/mihomo" },
{ ECoreType.hysteria, "apernet/hysteria" }, { ECoreType.hysteria, "apernet/hysteria" },
{ ECoreType.hysteria2, "apernet/hysteria" }, { ECoreType.hysteria2, "apernet/hysteria" },
{ ECoreType.naiveproxy, "klzgrad/naiveproxy" }, { ECoreType.naiveproxy, "klzgrad/naiveproxy" },
{ ECoreType.tuic, "EAimTY/tuic" }, { ECoreType.tuic, "EAimTY/tuic" },
{ ECoreType.juicity, "juicity/juicity" }, { ECoreType.juicity, "juicity/juicity" },
{ ECoreType.brook, "txthinking/brook" }, { ECoreType.brook, "txthinking/brook" },
{ ECoreType.overtls, "ShadowsocksR-Live/overtls" }, { ECoreType.overtls, "ShadowsocksR-Live/overtls" },
{ ECoreType.shadowquic, "spongebob888/shadowquic" }, { ECoreType.shadowquic, "spongebob888/shadowquic" },
{ ECoreType.mieru, "enfein/mieru" }, { ECoreType.mieru, "enfein/mieru" },
{ ECoreType.v2rayN, "2dust/v2rayN" }, { ECoreType.v2rayN, "2dust/v2rayN" },
}; };
public static readonly List<string> OtherGeoUrls = public static readonly List<string> OtherGeoUrls =
[ [
@"https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-only-cn-private.dat", @"https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-only-cn-private.dat",
@"https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb", @"https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb",
@"https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb" @"https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb"
]; ];
public static readonly List<string> IPAPIUrls = public static readonly List<string> IPAPIUrls =
@ -602,36 +604,37 @@ public class Global
]; ];
public static readonly Dictionary<string, List<string>> PredefinedHosts = new() public static readonly Dictionary<string, List<string>> PredefinedHosts = new()
{ {
{ "dns.google", new List<string> { "8.8.8.8", "8.8.4.4", "2001:4860:4860::8888", "2001:4860:4860::8844" } }, { "dns.google", new List<string> { "8.8.8.8", "8.8.4.4", "2001:4860:4860::8888", "2001:4860:4860::8844" } },
{ "dns.alidns.com", new List<string> { "223.5.5.5", "223.6.6.6", "2400:3200::1", "2400:3200:baba::1" } }, { "dns.alidns.com", new List<string> { "223.5.5.5", "223.6.6.6", "2400:3200::1", "2400:3200:baba::1" } },
{ "one.one.one.one", new List<string> { "1.1.1.1", "1.0.0.1", "2606:4700:4700::1111", "2606:4700:4700::1001" } }, { "one.one.one.one", new List<string> { "1.1.1.1", "1.0.0.1", "2606:4700:4700::1111", "2606:4700:4700::1001" } },
{ "1dot1dot1dot1.cloudflare-dns.com", new List<string> { "1.1.1.1", "1.0.0.1", "2606:4700:4700::1111", "2606:4700:4700::1001" } }, { "1dot1dot1dot1.cloudflare-dns.com", new List<string> { "1.1.1.1", "1.0.0.1", "2606:4700:4700::1111", "2606:4700:4700::1001" } },
{ "cloudflare-dns.com", new List<string> { "104.16.249.249", "104.16.248.249", "2606:4700::6810:f8f9", "2606:4700::6810:f9f9" } }, { "cloudflare-dns.com", new List<string> { "104.16.249.249", "104.16.248.249", "2606:4700::6810:f8f9", "2606:4700::6810:f9f9" } },
{ "dns.cloudflare.com", new List<string> { "104.16.132.229", "104.16.133.229", "2606:4700::6810:84e5", "2606:4700::6810:85e5" } }, { "dns.cloudflare.com", new List<string> { "104.16.132.229", "104.16.133.229", "2606:4700::6810:84e5", "2606:4700::6810:85e5" } },
{ "dot.pub", new List<string> { "1.12.12.12", "120.53.53.53" } }, { "dot.pub", new List<string> { "1.12.12.12", "120.53.53.53" } },
{ "doh.pub", new List<string> { "1.12.12.12", "120.53.53.53" } }, { "doh.pub", new List<string> { "1.12.12.12", "120.53.53.53" } },
{ "dns.quad9.net", new List<string> { "9.9.9.9", "149.112.112.112", "2620:fe::fe", "2620:fe::9" } }, { "dns.quad9.net", new List<string> { "9.9.9.9", "149.112.112.112", "2620:fe::fe", "2620:fe::9" } },
{ "dns.yandex.net", new List<string> { "77.88.8.8", "77.88.8.1", "2a02:6b8::feed:0ff", "2a02:6b8:0:1::feed:0ff" } }, { "dns.yandex.net", new List<string> { "77.88.8.8", "77.88.8.1", "2a02:6b8::feed:0ff", "2a02:6b8:0:1::feed:0ff" } },
{ "dns.sb", new List<string> { "185.222.222.222", "2a09::" } }, { "dns.sb", new List<string> { "185.222.222.222", "2a09::" } },
{ "dns.umbrella.com", new List<string> { "208.67.220.220", "208.67.222.222", "2620:119:35::35", "2620:119:53::53" } }, { "dns.umbrella.com", new List<string> { "208.67.220.220", "208.67.222.222", "2620:119:35::35", "2620:119:53::53" } },
{ "dns.sse.cisco.com", new List<string> { "208.67.220.220", "208.67.222.222", "2620:119:35::35", "2620:119:53::53" } }, { "dns.sse.cisco.com", new List<string> { "208.67.220.220", "208.67.222.222", "2620:119:35::35", "2620:119:53::53" } },
{ "engage.cloudflareclient.com", new List<string> { "162.159.192.1", "2606:4700:d0::a29f:c001" } } { "engage.cloudflareclient.com", new List<string> { "162.159.192.1", "2606:4700:d0::a29f:c001" } }
}; };
public static readonly List<string> ExpectedIPs = public static readonly List<string> ExpectedIPs =
[ [
"geoip:cn", "geoip:cn",
"geoip:ir", "geoip:ir",
"geoip:ru", "geoip:ru",
"" ""
]; ];
public static readonly List<string> EchForceQuerys = public static readonly List<string> EchForceQuerys =
[ [
"none", "none",
"half", "half",
"full", "full",
""
]; ];
#endregion const #endregion const