求助获取本机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地址的话,证明当前
电脑没有在线!