防止 Dns.GetHostAddresses 抛出异常?

因此,使用死网站的主机名调用 Dns.GetHostAddresses 通常会引发异常,指出“没有已知的此类主机”。

我的用例中的异常会导致大量额外的 CPU 使用,而额外的 CPU 使用可能是致命的。

有没有办法覆盖该方法以仅返回 null 或其他内容?

异常是 SocketException 表示它使用套接字,我查看了参考源并没有在 DNS.GetHostAddresses(string) 中找到任何套接字引用。我确实看到正在创建一个 SocketException 对象,但没有使用它。


精慕HU
浏览 220回答 3
3回答

墨色风雨

我不确定我是否正确理解您的问题,但是您是否正在尝试实现这样的目标?private void button1_Click(object sender, EventArgs e)    {        try        {            IPHostEntry hostEntry;            hostEntry = Dns.GetHostEntry(textBox3.Text);            if (hostEntry.AddressList.Length > 0)            {                var ip = hostEntry.AddressList[0];                Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);                s.Connect(ip, 80);                textBox5.Text = ip.ToString();            }        }        catch        {             textBox5.Text = "No Conversion available";        }
打开App,查看更多内容
随时随地看视频慕课网APP