我想在本地机器上获取IP地址:获取和检查本地计算机的IP地址
private string GetIP()
{
string strHostName = "";
strHostName = System.Net.Dns.GetHostName();
IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
foreach (IPAddress ipaddr in addr)
{
if (ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
return ipaddr.ToString();
}
return "IP error";
}
但是我无法找到一个方法来确定哪些接口是一个我需要的。例如:
我很幸运的是,我需要的是第二个在列表中。但如果它在后面,我会得到一个错误的界面IP。如何检查我是否获得IP用于本地连接(或通常,负责连接的接口)。
你怎么能指望你程序知道它应该查看哪个NIC? – 2012-01-31 13:42:55
这就是我不知道如何实现。现在只需要列表中的第一个InterNetwork。我想以某种方式验证它是本地连接。 – and 2012-01-31 13:51:33
什么是所有在列表中的其他IP的,如果他们不属于本地连接? – 2012-01-31 13:52:38