最近做项目发现的问题,暂时没考虑过对IPV6的支持,所以直接绕过IPV6 获取他的IPV4
在百度与必应徘徊N个网页未果后自己写了一小段
在WIN7系统测试通过,当然不敢确定所有的都可以,还望大家海涵
至少我公司的WIN7是通过了
当然,本DEMO只要一看就明白原理,能绕过IPV4 当然也可以绕过IPV4了,,哈哈 不多说 上代码using System;   
using System.Collections.Generic;   
using System.Text;   
using System.Net;   
  
namespace TestIPV6   
{   
    class Program   
    {   
        static void Main(string[] args)   
        {   
            IPAddress[] IPS = Dns.GetHostAddresses(Dns.GetHostName());   
            string IP_Str = string.Empty;   
            Console.WriteLine("所有获取到的IP:");   
  
            foreach (IPAddress var in IPS)   
            {   
                Console.WriteLine(var.ToString());   
            }   
  
            Console.WriteLine("IPV4:");   
            foreach (IPAddress var in IPS)   
            {   
                if (!var.IsIPv6LinkLocal)   
                {   
                    IP_Str = var.ToString();   
                    break;   
                }   
            }   
  
            Console.WriteLine(IP_Str);   
            Console.ReadKey();   
  
        }   
    }   
}  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dodducs/archive/2010/09/01/5855313.aspx

解决方案 »

  1.   

    饿,,,最后,,,说明一下  这个是 .net 2.0版本的代码
      

  2.   

    楼主要送分?接了...我这也有一个:
                    IPHostEntry ipHostEntry = Dns.GetHostEntry(Dns.GetHostName());      // 得到本机IP地址
                    foreach (IPAddress ip in ipHostEntry.AddressList)
                    {
                        if (ip.AddressFamily == AddressFamily.InterNetwork)
                        {
                            serveraddress = ip.ToString();
                            break;
                        }
                    }
      

  3.   

    海涵 :
     hǎi hán  
     敬辞,大度包容(用于请人原谅时):由于条件简陋,招待不周,还望~。 
    你到底有问题么,还是来散分的。
      

  4.   


    if (ip.AddressFamily.toString() == "InterNetwork")方法真好,支持了!