Winform获取本地IP和外网IP
一.本地IP
Winform要获得本地IP,就要想到C#中的 IPHostEntry 类
好吧,方法如下:
引入命名空间:
using System.Net;
实现方法:
IPHostEntry ipHost = Dns.Resolve(Dns.GetHostName()); ;
IPAddress ipaddress = ipHost.AddressList[0];
string ips = ipaddress.ToString();
IPAddress ipaddress = ipHost.AddressList[0];
string ips = ipaddress.ToString();
二.外网IP
Winform想获得外网IP,类库里好像还没有这样一个类哦,就只好去访问返回IP信息的网页来读取,目前我只找到这个方法.
我找了两个网页提供给大家哈
方法如下:
/// <summary>
/// 获得客户端外网IP地址
/// </summary>
/// <returns>IP地址</returns>
public static string GetClientInternetIP()
{
string ipAddress = "";
using (WebClient webClient = new WebClient())
{
ipAddress = webClient.DownloadString("http://www.dxda.com/ip.asp");//站获得IP的网页
//判断IP是否合法
if (!System.Text.RegularExpressions.Regex.IsMatch(ipAddress, "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}"))
{
ipAddress = webClient.DownloadString("http://www.zu14.cn/ip/");//站获得IP的网页
}
}
return ipAddress;
}
/// 获得客户端外网IP地址
/// </summary>
/// <returns>IP地址</returns>
public static string GetClientInternetIP()
{
string ipAddress = "";
using (WebClient webClient = new WebClient())
{
ipAddress = webClient.DownloadString("http://www.dxda.com/ip.asp");//站获得IP的网页
//判断IP是否合法
if (!System.Text.RegularExpressions.Regex.IsMatch(ipAddress, "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}"))
{
ipAddress = webClient.DownloadString("http://www.zu14.cn/ip/");//站获得IP的网页
}
}
return ipAddress;
}