在程序中有下面一段代码
IPAddress _ipaddress = Dns.GetHostAddresses(Dns.GetHostName())[0];在win7中得到总是fe80::4d13:1cfc:6ef5:46a0%10这样的地址,怎么才能得到IPV4的地址呢?

解决方案 »

  1.   

    以前也遇到过 xp就是v4,win7就v6
    不过代码丢了。
    好像是加个参数就可以了。
    自己再找下吧。
      

  2.   

    你获取到的第一个是ipv6的
    Dns.GetHostAddresses(Dns.GetHostName())[0].MapToIPv4()
      

  3.   

    Dns.GetHostAddresses("").FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork);
      

  4.   


    Dns.GetHostAddresses(Dns.GetHostName())[0].MapToIPv4()  怎么没有MapToIPv4(), 是不是得添加什么引用啊,
    Dns.GetHostAddresses("").FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork);这个老是提示=>有错
      

  5.   

    IPAddress _ipaddress = Dns.GetHostAddresses(Dns.GetHostName()).Where(o => o.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).FirstOrDefault();
    记得引入System.Linq
      

  6.   

    引入了System.Linq可还是不行啊
      

  7.   

    IPAddress _ipaddress = Dns.GetHostAddresses(Dns.GetHostName())[0];
    我知道了,把最后中括号里的0换成1得到的就是IPV4的地址了。
    从网上看到了下边这个方法,也可以得到IPV4的地址IPAddress[] arrIPAddresses = Dns.GetHostAddresses ( Dns.GetHostName ( ) );
                foreach ( IPAddress ip in arrIPAddresses )
                {
                    if ( ip.AddressFamily.Equals ( AddressFamily.InterNetwork ) )
                    {
                        MessageBox.Show ( ip.ToString ( ) );
                    }
                }
      

  8.   


    可以转换成IPV4形式,但是显示的不是正确的地址,而是0.0.0.1