使用HttpWebRequest对象发送数据包给网站获取IP地址
实例:
/// <summary>
/// 访问https://www.ipip.net/ip.html网站获取到本机IP
/// </summary>
/// <returns>IP</returns>
public static string returnIP()
{
HttpWebRequest request=(HttpWebRequest)WebRequest.Create("https://www.ipip.net/ip.html");
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.Method = "GET";
request.Host = "www.ipip.net:443";
request.Accept = "*/*";
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.ContentType = "application/x-www-form-urlencoded";
request.Referer = "";
request.AllowAutoRedirect = true;
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
request.CookieContainer = cookieContainer;
Stream stream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
string result = streamReader.ReadToEnd();
stream.Close();
streamReader.Close();
Regex regex = new Regex(@"\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}");
List<string> list = new List<string>();
foreach (object item in regex.Matches(result))
{
list.Add(item.ToString());
}
//List<System.String> list=new List<System.String>(regex.Matches(result));
var res=from n in list
group n by n into g
orderby g.Count() descending
select new { num = g.Key, nums = g.Count() };
string ip = string.Empty;
foreach (var item in res.Take(1))
{
ip = item.num;
}
return ip;
}