string ip = string.Join(".", BitConverter.GetBytes(251658240).Reverse().Select(x => ((int)x).ToString()).ToArray());
看下ip多少。
另外是不是你用的是ipv6。

解决方案 »

  1.   

    如果你只想得到 ipe.AddressList 这个集合里的最后一条记录,也用不着写一个 for 循环并且反复赋值给变量 ipa 啊?!可见你的编程时的流程的“想象力”(用大脑先模拟一编流程)需要加强。不论是得到最后一个,还是第一个(例如有人写 ipe.AddressList[0]),这都需要判断是否是 ipv4 地址(或者说判断是否不是 ipv6 地址)。最重要地是,对于让服务来说,应该使用 IpAddress.Any,而不是你那种 ip。
      

  2.   


    不是要得到最后一条记录!是要获取ipv4的地址!从网上找到的“ if (ipe.AddressList[i].AddressFamily.ToString() == "InterNetwork")”这样判断是否是ipv4地址,找到之后应该加个break退出循环就好了!这段代码后面是为了建立udp的端口监听!不知道做端口监听的时候是否可以使用IpAddress.Any?没做过网络编程很多东西不懂!还希望不吝赐教!谢谢!
      

  3.   


    运行结果是15.0.0.0
    运行环境是xp,没有ipv6地址吧?不过是一个无盘工作站!网吧里的一台电脑!单网卡!不知道这个有没有什么关系?谢谢!
      

  4.   

     System.Net.IPHostEntry IpEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());            for (int i = 0; i != IpEntry.AddressList.Length; i++)
                {
                    if (!IpEntry.AddressList[i].IsIPv6LinkLocal)
                    {
                        MessageBox.Show(IpEntry.AddressList[i].ToString());
                    }
                }
      

  5.   


    运行结果是15.0.0.0
    运行环境是xp,没有ipv6地址吧?不过是一个无盘工作站!网吧里的一台电脑!单网卡!不知道这个有没有什么关系?谢谢!
    15.0.0.0肯定不是合法的网络地址,你自己设置的?
      

  6.   


    运行结果是15.0.0.0
    运行环境是xp,没有ipv6地址吧?不过是一个无盘工作站!网吧里的一台电脑!单网卡!不知道这个有没有什么关系?谢谢!
    15.0.0.0肯定不是合法的网络地址,你自己设置的?
    不是,ip地址是网管设置的!我用ipconfig -all 查看到的ip地址是正常的!只是程序获取到的不正常!
    另外,我用虚拟机装个xp系统,使用同样的代码可以实现和win8的通讯,都很正常!就是拿到真实的环境里就出现这种问题!不知道是不是和网吧的路由啊,什么arp啊什么的有关系?不太懂这些!
      

  7.   

    碰到同样问题,一台服务器,用Dns.GetHostEntry得到的ip地址与实际的ip地址不同,不知是何原因