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