C#中如何得到机器的IP地址
生活随笔
收集整理的這篇文章主要介紹了
C#中如何得到机器的IP地址
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如何使用DNS類(lèi)并得到機(jī)器的IP地址的技巧
介紹
這篇文章并不是技術(shù)縱覽或大型討論,而更像是關(guān)于如何得到IP地址或主機(jī)名稱(chēng)的技巧集錦。在 Win32 API編程中你可以使用NetWork API,在.NET平臺(tái)中也是類(lèi)似的。唯一的不同之處是你要找到并理解為完成這個(gè)任務(wù)需要什么名稱(chēng)空間(namespace)和類(lèi)。在.NET平臺(tái)中NetWork API存在于System.Net名稱(chēng)空間中。System.Net名稱(chēng)空間中的DNS類(lèi)可以用來(lái)得到機(jī)器名稱(chēng)和IP地址。 DNS類(lèi)提供類(lèi)簡(jiǎn)單的域名解釋函數(shù)。DNS 類(lèi)為處理Internet域名(DNS)信息提供支持.這些返回的信息包括多重的IP地址和主機(jī)別名。返回的列表是一個(gè)集合或IPAddress對(duì)象數(shù)組。以下代碼顯示了如何通過(guò)給定的主機(jī)名稱(chēng)得到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)
{
// 首先得到本地機(jī)器的主機(jī)名稱(chēng)
strHostName = DNS.GetHostName ();
Console.WriteLine ("Local Machine's Host Name: " + strHostName);
}
else
{
strHostName = args[0];
}
// 然后通過(guò)主機(jī)名稱(chēng)得到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;
}
}
}
代碼的解釋
如果想得到本地機(jī)器的主機(jī)名,你可以不加參數(shù)調(diào)用GetHostName方法。然后你可以用返回的結(jié)果作為參數(shù)調(diào)用GetHostByName方法得到IPAddresses列表,然后遍歷addresses集合得到主機(jī)的IP地址。
提示
確認(rèn)在你的代碼中已經(jīng)包含了System.Net名稱(chēng)空間,否則編譯器將不知道如何找到DNS類(lèi)。同樣,當(dāng)你使用VisualStudio.NET創(chuàng)建工程的時(shí)候,要確認(rèn)你的系統(tǒng)已經(jīng)包含System.NET.Dll。關(guān)于DNS類(lèi)和System.Net名稱(chēng)空間的更詳細(xì)的信息請(qǐng)參考.NET SDK在線文檔。?
?
介紹
這篇文章并不是技術(shù)縱覽或大型討論,而更像是關(guān)于如何得到IP地址或主機(jī)名稱(chēng)的技巧集錦。在 Win32 API編程中你可以使用NetWork API,在.NET平臺(tái)中也是類(lèi)似的。唯一的不同之處是你要找到并理解為完成這個(gè)任務(wù)需要什么名稱(chēng)空間(namespace)和類(lèi)。在.NET平臺(tái)中NetWork API存在于System.Net名稱(chēng)空間中。System.Net名稱(chēng)空間中的DNS類(lèi)可以用來(lái)得到機(jī)器名稱(chēng)和IP地址。 DNS類(lèi)提供類(lèi)簡(jiǎn)單的域名解釋函數(shù)。DNS 類(lèi)為處理Internet域名(DNS)信息提供支持.這些返回的信息包括多重的IP地址和主機(jī)別名。返回的列表是一個(gè)集合或IPAddress對(duì)象數(shù)組。以下代碼顯示了如何通過(guò)給定的主機(jī)名稱(chēng)得到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)
{
// 首先得到本地機(jī)器的主機(jī)名稱(chēng)
strHostName = DNS.GetHostName ();
Console.WriteLine ("Local Machine's Host Name: " + strHostName);
}
else
{
strHostName = args[0];
}
// 然后通過(guò)主機(jī)名稱(chēng)得到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;
}
}
}
代碼的解釋
如果想得到本地機(jī)器的主機(jī)名,你可以不加參數(shù)調(diào)用GetHostName方法。然后你可以用返回的結(jié)果作為參數(shù)調(diào)用GetHostByName方法得到IPAddresses列表,然后遍歷addresses集合得到主機(jī)的IP地址。
提示
確認(rèn)在你的代碼中已經(jīng)包含了System.Net名稱(chēng)空間,否則編譯器將不知道如何找到DNS類(lèi)。同樣,當(dāng)你使用VisualStudio.NET創(chuàng)建工程的時(shí)候,要確認(rèn)你的系統(tǒng)已經(jīng)包含System.NET.Dll。關(guān)于DNS類(lèi)和System.Net名稱(chēng)空間的更詳細(xì)的信息請(qǐng)參考.NET SDK在線文檔。?
?
總結(jié)
以上是生活随笔為你收集整理的C#中如何得到机器的IP地址的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎么打觉醒伊芙利特
- 下一篇: 黄山风景区应该从哪个门进