.NET Core解析DNS域名或主机名的方法

在.NET Core中我们可以用System.Net.Dns类来解析域名或主机名的IP地址,我们新建一个.NET Core控制台项目,写入下面代码:

using System;
using System.Net;

namespace NetCoreDns
{
    class Program
    {
        static void Main(string[] args)
        {
            string remoteHostName = string.Empty;

            Console.Write("请输入要解析的域名或主机名:");
            remoteHostName = Console.ReadLine();

            IPAddress[] ips = null;

            try
            {
                ips = Dns.GetHostAddresses(remoteHostName);//Dns.GetHostAddresses方法根据传入的域名或主机名,获取绑定的IP地址
            }
            catch (System.Net.Sockets.SocketException sex)//如果Dns.GetHostAddresses方法解析域名或主机名的IP地址失败,会抛出SocketException异常
            {
                Console.WriteLine($"域名或主机名{remoteHostName}无法被成功解析!");
            }

            if (ips != null && ips.Length >= 1)
            {
                Console.WriteLine("该域名或主机名的IP地址如下:");

                foreach (var ip in ips)
                {
                    Console.WriteLine(ip.ToString());//循环显示获取到的所有IP地址
                }
            }

            Console.WriteLine($"本机名为:{Dns.GetHostName()}");//Dns.GetHostName方法获取本机名
            Console.WriteLine($"根据指定的主机名获取DNS信息:{Dns.GetHostEntry(Dns.GetHostName()).HostName}");//Dns.GetHostEntry方法根据指定的主机名获取DNS信息

            Console.WriteLine("按任意键结束程序运行...");
            Console.ReadKey();
        }
    }
}

运行代码,我们输入百度的域名:www.baidu.com,结果如下:

我们在Web浏览器中输入获取到的IP地址:61.135.169.121,可以访问到百度的首页:

所以,这样我们就可以成功解析域名或主机名的IP地址了。

猜你喜欢

转载自www.cnblogs.com/OpenCoder/p/11307435.html