gpt4 book ai didi

c# - 按时间限制 Dns.GetHostAddresses

转载 作者:行者123 更新时间:2023-11-30 14:48:32 29 4
gpt4 key购买 nike

我正在编写一个使用 C# 解析域 IP 地址的脚本

问题是我有很多域无法解析为 IP,因此代码 (Dns.GetHostAddresses) 运行了很长时间,试图解析域的 IP没有 IP。

这是代码:

public string getIPfromHost(string host)
{
try
{
var domain = Dns.GetHostAddresses(host)[0];
return domain.ToString();
}
catch (Exception)
{
return "No IP";
}
}

我想做的是,如果 1 秒后没有 IP,我想返回“No IP”

我怎样才能做到这一点?

最佳答案

您可以通过使用 TPL(任务并行库)来实现这一点。您可以创建新任务并等待 1 秒,如果成功则返回 true,否则返回 false。只需在 getIPfromHost(string host) 这个方法中使用下面的代码。(这是您问题的解决方案,需要等待 1 秒,请确保您之前的方法工作正常。)

public string getIPfromHost(string host)
{
try
{
Task<string> task = Task<string>.Factory.StartNew(() =>
{
var domain = Dns.GetHostAddresses(host)[0];
return domain.ToString();
});

bool success = task.Wait(1000);
if (success)
{
return task.Result;
}
else
{
return "No IP";
}

}
catch (Exception)
{

return "No IP";
}

}

关于c# - 按时间限制 Dns.GetHostAddresses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41348873/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com