在.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 >= )
{
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地址了。