日期:2014-05-20  浏览次数:20987 次

关于C#用代码获取IP的问题
我用这行代码获取IP
  if (Dns.GetHostEntry(Dns.GetHostName()).AddressList.Length > 0)
            {
                text_IP.Text = Dns.GetHostEntry(Dns.GetHostName()).AddressList[1].ToString();
            }
在不联网的时候是这样的可以获取的
但是联网之后是这样的获取出这个fe80::1c90:1322:53ef:93c9%15

------解决方案--------------------
得到的是IPv6格式的 怎么转换成ipv4的..我也不懂--
------解决方案--------------------
 public  string GetIP()
        {
            string hostNameOrIP=Dns.GetHostName();
            IPHostEntry ipEntry = Dns.GetHostEntry(hostNameOrIP); 
            string sIP = string.Empty;
            if (ipEntry.AddressList.Length > 0)
            {
                foreach (IPAddress addr in ipEntry.AddressList)
                {
                    if (addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                    {
                        sIP = addr.ToString();
                        break;
                    }
                }
            }
            return sIP;
        }

我是这样写的,希望对你有帮助.