string ipAddr ="";
string GetHostName = Dns.GetHostName();StringBuilder ipAddrSB = new StringBuilder();
System.Net.IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(GetHostName);System.Net.IPAddress[] addr = ipEntry.AddressList;foreach (IPAddress ip in addr)
{
ipAddrSB.Append(ip + "|");
}if (ipAddrSB.ToString()[ipAddrSB.Length - 1] == '|')
{
ipAddr = ipAddrSB.ToString().Substring(0, ipAddrSB.Length - 1);
}
MessageBox.Show(ipAddr,"好长的IP地址啊");得到的结果如下fe80::d06a:4fd3:daf3:8ac2%11|
fe80::8e9:1779:89e3:c836%26|
2002:761c:37c9::761c:37c9|
169.254.138.194|
118.28.55.201|
2001:0:4137:9e76:8e9:1779:89e3:c836倒数第二个和倒数第三个是我认识的IP样子,其它信息都是什么呢?
我应该取哪个?或取哪些?
其实这应该问你自己。或者说这个软件设计者自己原来就没有想这个问题,别人怎么提你想呢。比如设计者就是简单地说了一句“要记录IP,来识别主机”,那么你就必须记录所有IP,而且你的封装好的程序,应该在这个IP列表中某些IP不存在、或者排列颠倒顺序时,你仍然返回给应用程序说它是同一个主机。