VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > c#编程 >
  • C#使用Dns类查询主机名对应IP地址

在C#中,你可以使用`System.Net.Dns`类来查询给定主机名(如域名)对应的IP地址。这个类提供了一系列静态方法,允许你执行DNS相关的操作,包括解析主机名到IP地址。
 
下面是一个简单的示例,展示了如何使用`Dns.GetHostEntry`方法来查询主机名对应的IP地址列表:
 
using System;
using System.Net;
 
namespace DnsLookupExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 替换成你想要查询的主机名
            string hostName = "www.example.com";
 
            try
            {
                // 获取与主机名关联的主机信息
                IPHostEntry hostInfo = Dns.GetHostEntry(hostName);
 
                // 输出主机名
                Console.WriteLine($"Host Name: {hostInfo.HostName}");
 
                // 遍历并输出所有的IP地址
                foreach (IPAddress ip in hostInfo.AddressList)
                {
                    Console.WriteLine($"IP Address: {ip}");
                }
            }
            catch (SocketException e)
            {
                // 捕获并处理可能发生的Socket异常,如DNS解析失败
                Console.WriteLine($"SocketException caught!!! Source : {e.Source} ");
                Console.WriteLine($"Error Code : {e.ErrorCode} ");
                Console.WriteLine($"Message : {e.Message} ");
            }
            catch (Exception e)
            {
                // 捕获并处理其他可能的异常
                Console.WriteLine($"Exception caught!!! Source : {e.Source} ");
                Console.WriteLine($"Message : {e.Message} ");
            }
        }
    }
}
 
在这个示例中,我们首先导入了`System`和`System.Net`命名空间,以便能够使用`Console`和`Dns`类。然后,我们定义了一个`hostName`变量,并将其设置为我们想要查询的主机名(在这个例子中是"www.example.com")。接着,我们使用`Dns.GetHostEntry`方法查询该主机名对应的`IPHostEntry`对象,该对象包含了主机名及其关联的IP地址列表。
 
通过遍历`IPHostEntry`对象的`AddressList`属性,我们可以获取并打印出所有关联的IP地址。此外,我们还通过try-catch块来处理可能发生的异常,比如`SocketException`,它可能在DNS解析失败时抛出。
 
请注意,由于网络环境和DNS服务器配置的不同,查询结果可能包含多个IP地址,这些地址可能属于IPv4或IPv6。在上面的示例中,我们简单地遍历并打印了所有这些地址,但在实际应用中,你可能需要根据具体需求对这些地址进行进一步的处理或选择。


最后,如果你对python语言还有任何疑问或者需要进一步的帮助,请访问https://www.xin3721.com 本站原创,转载请注明出处:https://www.xin3721.com/ArticlecSharp/c50102.html

相关教程