C#使用Dns類實現(xiàn)查詢主機名對應IP地址
C#中使用Dns相關(guān)類查詢主機名對應的IP地址等信息
C#中的Dns類能夠與默認的DNS服務器進行通信,以檢索IP地址。
下面的DnsLookup示例代碼使用了以下名稱空間:
- System
- System.Net
- System.Threading.Tasks
樣例應用程序?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>
/// 樣例應用程序?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#的控制臺應用程序,運行應用程序,輸入幾個主機名,得到如下輸出:

對于主機名 www.orf.at, 可以看到這個主機名定義了多個IP地址。
注意:
Dns類是比較有限的,例如不能指定使用非默認的DNS服務器。此外,IPHostEntry的Aliasess屬性不在GetHostEntryAsync方法中填充。它只在Dns類的過時方法中填充。而且這些方法也不完全地填充這個屬性。要充分利用DNS查找功能,最好使用第三方庫。
到此這篇關(guān)于C#使用Dns類實現(xiàn)查詢主機名對應IP地址的文章就介紹到這了,更多相關(guān)C#查詢主機對應IP地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c#中DataTable轉(zhuǎn)List的2種方法示例
這篇文章主要給大家介紹了關(guān)于c#中DataTable轉(zhuǎn)List的2種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
WinForm實現(xiàn)為ComboBox綁定數(shù)據(jù)源并提供下拉提示功能
這篇文章主要介紹了WinForm實現(xiàn)為ComboBox綁定數(shù)據(jù)源并提供下拉提示功能,是非常實用的功能,需要的朋友可以參考下2014-08-08
WinForm使用DecExpress控件中的ChartControl插件繪制圖表
這篇文章介紹了WinForm使用DecExpress控件中的ChartControl插件繪制圖表的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05

