C#中如何得到機器的IP地址

來源:互聯網
上載者:User
ip地址 C#中如何得到機器的IP地址



如何使用DNS類並得到機器的IP地址的技巧

介紹

這篇文章並不是技術縱覽或大型討論,而更像是關於如何得到IP地址或主機名稱的技巧集錦。在 Win32 API編程中你可以使用NetWork API,在.NET平台中也是類似的。唯一的不同之處是你要找到並理解為完成這個任務需要什麼名稱空間(namespace)和類。在.NET平台中NetWork API存在於System.Net名稱空間中。System.Net名稱空間中的DNS類可以用來得到機器名稱和IP地址。 DNS類提供類簡單的網域名稱解釋函數。DNS 類為處理Internet網域名稱(DNS)資訊提供支援.這些返回的資訊包括多重的IP地址和主機別名。返回的列表是一個集合或IPAddress對象數組。以下代碼顯示了如何通過給定的主機名稱得到IP地址。

DNSUtility代碼
namespace NKUtilities
{
using System;
using System.Net;

public class DNSUtility
{
public static int Main (string [] args)
{

String strHostName = new String ("");
if (args.Length == 0)
{
// 首先得到本地機器的主機名稱
strHostName = DNS.GetHostName ();
Console.WriteLine ("Local Machine's Host Name: " + strHostName);
}
else
{
strHostName = args[0];
}

// 然後通過主機名稱得到IP地址清單
IPHostEntry ipEntry = DNS.GetHostByName (strHostName);
IPAddress [] addr = ipEntry.AddressList;

for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine ("IP Address {0}: {1} ", i, addr[i].ToString ());
}
return 0;
}
}
}
代碼的解釋
如果想得到本地機器的主機名稱,你可以不加參數調用GetHostName方法。然後你可以用返回的結果作為參數調用GetHostByName方法得到IPAddresses列表,然後遍曆addresses集合得到主機的IP地址。

提示
確認在你的代碼中已經包含了System.Net名稱空間,否則編譯器將不知道如何找到DNS類。同樣,當你使用VisualStudio.NET建立工程的時候,要確認你的系統已經包含System.NET.Dll。關於DNS類和System.Net名稱空間的更詳細的資訊請參考.NET SDK線上文檔。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.