ipv6 only的支持
This commit is contained in:
parent
5dd1a6cf8f
commit
602a41a94e
@ -91,7 +91,12 @@ namespace FastGithub.DomainResolve
|
|||||||
|
|
||||||
foreach (var fallbackDns in this.fastGithubConfig.FallbackDns)
|
foreach (var fallbackDns in this.fastGithubConfig.FallbackDns)
|
||||||
{
|
{
|
||||||
if (Socket.OSSupportsIPv6 || fallbackDns.AddressFamily != AddressFamily.InterNetworkV6)
|
if (Socket.OSSupportsIPv4 && fallbackDns.AddressFamily == AddressFamily.InterNetwork)
|
||||||
|
{
|
||||||
|
yield return fallbackDns;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Socket.OSSupportsIPv6 && fallbackDns.AddressFamily == AddressFamily.InterNetworkV6)
|
||||||
{
|
{
|
||||||
yield return fallbackDns;
|
yield return fallbackDns;
|
||||||
}
|
}
|
||||||
@ -191,17 +196,21 @@ namespace FastGithub.DomainResolve
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private static async Task<IList<IResourceRecord>> GetAnswerRecordsAsync(IRequestResolver resolver, string domain, CancellationToken cancellationToken)
|
private static async Task<IList<IResourceRecord>> GetAnswerRecordsAsync(IRequestResolver resolver, string domain, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var answerRecords = await GetAnswerAsync(RecordType.A);
|
var answerRecords = new List<IResourceRecord>();
|
||||||
|
if (Socket.OSSupportsIPv4 == true)
|
||||||
|
{
|
||||||
|
var records = await GetAnswerAsync(RecordType.A);
|
||||||
|
answerRecords.AddRange(records);
|
||||||
|
}
|
||||||
|
|
||||||
if (Socket.OSSupportsIPv6 == true)
|
if (Socket.OSSupportsIPv6 == true)
|
||||||
{
|
{
|
||||||
var ipv6Records = await GetAnswerAsync(RecordType.AAAA);
|
var records = await GetAnswerAsync(RecordType.AAAA);
|
||||||
foreach (var record in ipv6Records)
|
answerRecords.AddRange(records);
|
||||||
{
|
|
||||||
answerRecords.Add(record);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return answerRecords;
|
return answerRecords;
|
||||||
|
|
||||||
|
|
||||||
async Task<IList<IResourceRecord>> GetAnswerAsync(RecordType recordType)
|
async Task<IList<IResourceRecord>> GetAnswerAsync(RecordType recordType)
|
||||||
{
|
{
|
||||||
var request = new Request
|
var request = new Request
|
||||||
|
|||||||
@ -4,7 +4,8 @@
|
|||||||
"HttpProxyPort": 38457, // http代理端口,linux/osx平台使用
|
"HttpProxyPort": 38457, // http代理端口,linux/osx平台使用
|
||||||
"FallbackDns": [ // 以下dns必须要支持tcp
|
"FallbackDns": [ // 以下dns必须要支持tcp
|
||||||
"114.114.114.114:53",
|
"114.114.114.114:53",
|
||||||
"119.29.29.29:53"
|
"119.29.29.29:53",
|
||||||
|
"[2400:3200::1]:53"
|
||||||
],
|
],
|
||||||
"DomainConfigs": {
|
"DomainConfigs": {
|
||||||
"*.fastgithub.com": { // 域名的*表示除.之外0到多个任意字符
|
"*.fastgithub.com": { // 域名的*表示除.之外0到多个任意字符
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user