解决方案 »

  1.   

    IP V6地址吧,这种在有Wifi的本本上很常见
    你可以筛选
    Dns.GetHostAddresses(MachineName)
        .Where(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
        .First()
      

  2.   


    请问ip是什么?
    我是这样写的代码:
    System.Net.IPAddress[] addressList = Dns.GetHostAddresses( Dns.GetHostName() );
    如何在addressList中把IPv4筛选出来?
      

  3.   

    Dns.GetHostAddresses(MachineName)
        .Where(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
        .First()是筛选ip v4 
    Dns.GetHostAddresses(MachineName)
        .Where(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
        .First()
    是筛选V6的ip地址
      

  4.   


    我刚才试了一下,这样就可以得到IPv4的地址了,请问这样写规范吗?
    IPAddress addressList2 = Dns.GetHostAddresses( Dns.GetHostName() ).Where( ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork ).First();
    textBox1.Text = addressList2.ToString();
      

  5.   

    你所谓的规范指什么?
    需要注意的是:
    1.当所有本地连接都被禁用,取到的将是回环地址127.0.0.1
    2.当目标机器的网卡出现问题系统无法识别,有可能一个都取不到,导致.First()抛出异常
    3.当有多块网卡时(包括虚拟网卡),上述方法取到的就不准确了,需根据情况来定
      

  6.   


    IPAddress addressList2 = Dns.GetHostAddresses( Dns.GetHostName() ).Where( ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork ).First();
    确定有Dns.GetHostAddresses().Where().First();的格式? 为啥我找不到.....
    AddressFamily 这个可以理解~~