先分析下你的方法中的问题: 你这个方法只适用于本地单网卡,没有路由器,而且非拨号上网,且系统没有IPv6地址(非Win7&Vista)的情况。如果你不符合其中任意一个条件,你用的方法就不行。不能获得本机的IP.从你的ip输出列表来看,你的机器显然安装有ipv6协议,而且使用了路由。所以,你要单纯找到你自己的本地的ipv4的ip--即192.168.0.8,需要进行一些删选(如果你必须用这种方法)。 解决方案:下面是我对你的代码的小改造:string _IP = null;
foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList)
{
if (_IPAddress.AddressFamily.ToString() == "InterNetwork")
{ _IP = _IPAddress.ToString(); } } return _IP; 可以看到,这里我判断了你的ip地址族的类型,为InterNetwork。这里的_ip就是你想要的了