日期:2014-05-18  浏览次数:21019 次

求助获取本机IP的正确方法
小弟正在学习C#网络编程,现在想写一段能获取本地IP的代码,我写的如下:
namespace ConsoleApplication1
{
  class Program
  {
  static void Main(string[] args)
  {
  string hostname = Dns.GetHostName();
  IPHostEntry myip=Dns.GetHostEntry(hostname);
  IPAddress here = myip.AddressList[0];
  string dizhi = here.ToString();
  Console.WriteLine("It is {0}", dizhi);
  Console.ReadLine();
  }
  }
}
我写代码的环境:
操作系统:Win7 IDE:VS2008 网卡为有线和无线两块 IP均设置为自动获取

上述代码调试时得到的IP为本机环回地址127.0.0.1,若把AddressList[0]改为AddressList[1],则输出::1(貌似这是IPV6的环回地址吧)
我想问一下如何才能获得本机的真实IP地址呢

------解决方案--------------------
通常addressList[]所得到的列表就是当前的IP地址;

如果当前是拨号上网的话addressList[0].ToString()就是

本地IP地址;addressList[1].ToString() 就是上网地址。

如果当前是使用[EnterNet 300]拨号上网的话addressList[1].ToString()

就是本地IP地址;addressList[0].ToString() 就是上网地址。

如果程序只能够检测到只有一个IP地址的话,证明当前

电脑没有在线!