有几种方法获取本机局域网地址和网络地址。
1、 获取本机局域网地址:
使用IPHostEntry
static string
GetLocalIp()
{
string
hostname =
Dns.GetHostName();
IPHostEntry localhost =
Dns.GetHostByName(hostname);
IPAddress localaddr =
localhost.AddressList[0];
return localaddr.ToString();
}
2、获取本机网络ip地址:
通过向网站http://www.ip138.com/ip2city.asp发送webrequest,分析返回的数据流
try
{
string strUrl = "http://www.ip138.com/ip2city.asp"; //获得IP的网址
Uri uri = new
Uri(strUrl);
WebRequest webreq =
WebRequest.Create(uri);
Stream s = webreq
.GetResponse().GetResponseStream();
StreamReader sr = new StreamReader(s,
Encoding.Default);
string all = sr.ReadToEnd(); //读取网站返回的数据 格式:您的IP地址是:[x.x.x.x]
int i = all.IndexOf("[") +
1;
string tempip = all.Substring(i,
15);
string ip = tempip.Replace("]", "").Replace(" ",
"").Replace("<",""); //去除杂项找出ip
return ip;
}
你的机子安装了IPv6协议,所以2002:b00:11e:b00:11e 是你的IPV6的地址。
你可以通过以下代码:你可以通过foreach来达到AddressList的元素个数无关性,得到所有的IP地址~然后通过一些筛选来得到选出你需要的那个
string strHostName = Dns.GetHostName(); //得到本机的主机名
IPHostEntry ipEntry = Dns.GetHostEntry(strHostName); //取得本机IP
foreach (System.Net.IPAddress ip in ipEntry.AddressList)
{
Console.WriteLine(ip);
}
AddressList[0]是系统试着的ip地址,AddressList[1]是你通过拨号上网获取的地址 。下次编程的时候用AddressList[1]记得拨号 。
关注