日期:2014-05-17  浏览次数:20881 次

【求助】关于win7和XP获取本机IP地址不同的问题
如题,我做了一个服务器,想获取本机的IP地址用来监听自己

代码如下

m_server.IpAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];


但是问题是我在win XP下获取没问题,是IPV4的地址

但是win7好像支持了IPV6的地址,用这个方法获取的是IPV6地址,所以格式都变了

格式变了之后用tcpclient监听的时候就会显示IP的格式不正确不能识别

当然在win7下关闭IPV6服务是可以的,但是有什么办法可以让我获取IPV4的地址啊

谢谢各位了


------解决方案--------------------

遍历AddressList
if(Dns.GetHostEntry(Dns.GetHostName()).AddressList[i].AddressFamily == AddressFamily.InterNetwork)
{
     m_server.IpAddress=Dns.GetHostEntry(Dns.GetHostName()).AddressList[i];
     break;
}