为了账号安全,请及时绑定邮箱和手机立即绑定

防止 Dns.GetHostAddresses 抛出异常?

防止 Dns.GetHostAddresses 抛出异常?

C#
精慕HU 2021-10-09 10:33:15
因此,使用死网站的主机名调用 Dns.GetHostAddresses 通常会引发异常,指出“没有已知的此类主机”。我的用例中的异常会导致大量额外的 CPU 使用,而额外的 CPU 使用可能是致命的。有没有办法覆盖该方法以仅返回 null 或其他内容?异常是 SocketException 表示它使用套接字,我查看了参考源并没有在 DNS.GetHostAddresses(string) 中找到任何套接字引用。我确实看到正在创建一个 SocketException 对象,但没有使用它。
查看完整描述

3 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

我不确定我是否正确理解您的问题,但是您是否正在尝试实现这样的目标?


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";

        }


查看完整回答
反对 回复 2021-10-09
  • 3 回答
  • 0 关注
  • 219 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信