在 C# 開發中,經常需要解析遠端主機名稱以取得其 IP 位址。.NET Framework 提供了 System.Net.Dns 類別,讓我們能輕鬆完成這項任務。其中最常用的方法是 GetHostAddresses(),它能根據主機名稱或 IP 字串回傳對應的 IP 位址陣列。
以下示範如何在按鈕點擊事件中,透過主機名稱 "HB" 取得其第一個 IP 位址並顯示:
private void button1_Click(object sender, EventArgs e)
{
IPAddress[] ipAddresses = Dns.GetHostAddresses("HB");
if (ipAddresses.Length > 0)
{
MessageBox.Show(ipAddresses[0].ToString());
}
else
{
MessageBox.Show("無法解析該主機名稱。");
}
}
IPAddress[] 陣列,包含所有解析到的 IPv4 與 IPv6 位址。BeginGetHostAddresses / EndGetHostAddresses 配對進行非同步解析。SocketException,建議以 try-catch 包裹。若需取得本機所有 IP,可搭配 Dns.GetHostName() 先取得本機主機名,再呼叫 GetHostAddresses。此外,Dns.GetHostEntry 可取得更完整的 IPHostEntry 物件,包含主機名稱、別名清單及位址清單,適合需要更多資訊的場景。
掌握 System.Net.Dns 的基本用法,能幫助你快速實作網路掃描、遠端連線前的位址解析等常見需求。