【发布时间】:2010-11-04 23:31:21
【问题描述】:
在 C# 中:
IPHostEntry IPHost = Dns.GetHostEntry(Dns.GetHostName());
for (int i = 0; i < IPHost.AddressList.Length; i++)
{
textBox1.AppendText("My IP address is: "
+ IPHost.AddressList[i].ToString() + "\r\n");
}
在此代码中,IPHostEntry 变量包含计算机的所有 IP 地址。
现在,据我所知,Windows vista 会返回一些 IP 地址,一些是十六进制的,一些是十进制的等等。
问题在于所需的十进制表示法改变了它在IPHostEntry 变量中的位置:它最初出现在最后一个位置,因此可以使用代码访问:
string ipText = IPHost.AddressList[IPHost.AddressList.Length - 1].ToString();
但是在更改计算机的 IP 地址后,它现在出现在倒数第二个位置,因此需要使用代码访问:
string ipText = IPHost.AddressList[IPHost.AddressList.Length - 2].ToString();
是否有任何代码以十进制表示法检索 IP 地址,无论其在 IPHostEntry 变量中的位置如何??
【问题讨论】:
-
除非您自己意识到是什么让您寻求的一个 IP 地址比其他所有 IP 地址更适合您的目的,否则您可能会感到困惑。在返回值中依赖神奇的、未记录的订单是不好的做法。
-
您要查找哪些 IP 地址?全部?
标签: c# .net ip-address