C#使用Dns類實現(xiàn)查詢主機名對應(yīng)IP地址
C#中使用Dns相關(guān)類查詢主機名對應(yīng)的IP地址等信息
C#中的Dns類能夠與默認(rèn)的DNS服務(wù)器進(jìn)行通信,以檢索IP地址。
下面的DnsLookup示例代碼使用了以下名稱空間:
- System
- System.Net
- System.Threading.Tasks
樣例應(yīng)用程序?qū)崿F(xiàn)一個控制臺程序(包),要求用戶輸入主機名(也可以添加一個IP地址),通過Dns.GetHostEntryAsync得到一個IPHostEntry。在IPHostEntry中,使用AddressList屬性訪問地址列表。
的所有地址以及AddressFamily都寫入控制臺。(代碼文件 DnsLookup/Program.cs):
using System; using System.Threading.Tasks; using System.Net; namespace DnsLookup { class Program { /// <summary> /// 樣例應(yīng)用程序?qū)崿F(xiàn)一個控制臺程序(包),要求用戶輸入主機名(也可以添加一個IP地址), /// 通過Dns.GetHostEntryAsync得到一個IPHostEntry。在IPHostEntry中,使用AddressList屬性訪問地址列表。 /// 主機的所有地址以及AddressFamily都寫入控制臺。 /// /// </summary> /// <param name="args"></param> /// <returns></returns> static async Task Main(string[] args) { do { Console.Write("Hostname:\t"); string hostname = Console.ReadLine(); if (hostname.CompareTo("exit") == 0) { Console.WriteLine("bye!"); return; } await OnLookupAsync(hostname); Console.WriteLine(); } while (true); } public static async Task OnLookupAsync(string hostname) { try { IPHostEntry ipHost = await Dns.GetHostEntryAsync(hostname); Console.WriteLine($"Hostname: {ipHost.HostName}"); foreach (IPAddress address in ipHost.AddressList) { Console.WriteLine($"Address Family: {address.AddressFamily}"); Console.WriteLine($"Address: {address}"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
在VS2017創(chuàng)建一個基于C#的控制臺應(yīng)用程序,運行應(yīng)用程序,輸入幾個主機名,得到如下輸出:
對于主機名 www.orf.at, 可以看到這個主機名定義了多個IP地址。
注意:
Dns類是比較有限的,例如不能指定使用非默認(rèn)的DNS服務(wù)器。此外,IPHostEntry的Aliasess屬性不在GetHostEntryAsync方法中填充。它只在Dns類的過時方法中填充。而且這些方法也不完全地填充這個屬性。要充分利用DNS查找功能,最好使用第三方庫。
到此這篇關(guān)于C#使用Dns類實現(xiàn)查詢主機名對應(yīng)IP地址的文章就介紹到這了,更多相關(guān)C#查詢主機對應(yīng)IP地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C#中的WebRequest與WebResponse抽象類、DNS靜態(tài)類、Ping類介紹
- c# 如何對網(wǎng)絡(luò)信息進(jìn)行相關(guān)設(shè)置(ip,dns,網(wǎng)關(guān)等)
- C# 兩種方式反編譯修改源碼(dnspy,ildasm & ilasm)
- C#實現(xiàn)一鍵換IP、重置DNS、網(wǎng)關(guān)及掩碼的方法
- C#設(shè)置本地網(wǎng)絡(luò)如DNS、網(wǎng)關(guān)、子網(wǎng)掩碼、IP等等
- C#利用WMI操作DNS服務(wù)器(可遠(yuǎn)程操作,需要相應(yīng)權(quán)限)
- C# System.Net.Dns 使用詳解
相關(guān)文章
C#實現(xiàn)將字符串轉(zhuǎn)換成日期格式的方法
這篇文章主要介紹了C#實現(xiàn)將字符串轉(zhuǎn)換成日期格式的方法,涉及C#操作時間及字符串的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下2015-05-05C#創(chuàng)建Windows服務(wù)的實現(xiàn)方法
這篇文章主要介紹了C#創(chuàng)建Windows服務(wù)的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03c#使用win32api實現(xiàn)獲取光標(biāo)位置
本文給大家匯總了2個使用C#實現(xiàn)獲取光標(biāo)位置的代碼,非常的簡單實用,第二種方法更為全面,推薦給大家。2016-02-02