From 01b91b801cce8260653b22b4f706efaf40bec024 Mon Sep 17 00:00:00 2001 From: xljiulang <366193849@qq.com> Date: Mon, 21 Jun 2021 21:11:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0dns=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E6=97=B6=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs | 5 ++++- .../LookupProviders/PublicDnsProviderOptions.cs | 5 +++++ FastGithub/appsettings.json | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs b/FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs index 2298f06..f7b701a 100644 --- a/FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs +++ b/FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs @@ -80,7 +80,10 @@ namespace FastGithub.Scanner.LookupProviders { try { - var addresses = await client.Lookup(domain, cancellationToken: cancellationToken); + using var timeoutTokenSource = new CancellationTokenSource(this.options.CurrentValue.Timeout); + using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(timeoutTokenSource.Token, cancellationToken); + + var addresses = await client.Lookup(domain, cancellationToken: linkedTokenSource.Token); foreach (var address in addresses) { if (address.AddressFamily == AddressFamily.InterNetwork) diff --git a/FastGithub.Scanner/LookupProviders/PublicDnsProviderOptions.cs b/FastGithub.Scanner/LookupProviders/PublicDnsProviderOptions.cs index b6d0972..e707c1c 100644 --- a/FastGithub.Scanner/LookupProviders/PublicDnsProviderOptions.cs +++ b/FastGithub.Scanner/LookupProviders/PublicDnsProviderOptions.cs @@ -13,6 +13,11 @@ namespace FastGithub.Scanner.LookupProviders /// public bool Enable { get; set; } = true; + /// + /// dns查询超时时长 + /// + public TimeSpan Timeout { get; set; } = TimeSpan.FromMilliseconds(100d); + /// /// dns列表 /// diff --git a/FastGithub/appsettings.json b/FastGithub/appsettings.json index 049c4c7..e18d86f 100644 --- a/FastGithub/appsettings.json +++ b/FastGithub/appsettings.json @@ -24,6 +24,7 @@ }, "PublicDnsProvider": { "Enable": true, // ÊÇ·ñÐèÒª´Ódns·þÎñÆ÷²éÕÒip + "Timeout": "00:00:00.100", // dns²éѯ³¬Ê±Ê±³¤ "Dnss": [ // dns·þÎñÆ÷Áбí "1.2.4.8", "8.8.8.8",