您的位置:首页 > 编程语言 > ASP

asp.net根据ip获得城市地址

2014-08-29 16:55 232 查看

asp.net根据ip获得城市地址

Solution 1:
#region 通过IP得到IP所在地省市
///<summary>
/// 通过IP得到IP所在地省市(Porschev)
///</summary>
///<param name="ip">Ip地址</param>
///<returns></returns>
protected string GetAdrByIp(string ip)   {
try
{
string url = "http://www.ip138.com/ips1388.asp?ip=" + ip + "&action=2";                  string regStr = "(?<=<ul class=\\\"ul1\\\"><li>.*:).*(?=\\s.*</li><li>)";               string html = GetHtml(url);
//得到网页源码
Regex reg = new Regex(regStr, RegexOptions.None);
Match ma = reg.Match(html);
return    ma.Value.Substring(ma.Value.IndexOf("省") + 1).Trim();
}
catch
{
return "";
}
}
#endregion #region 获取HTML源码信息
///<summary>
/// 获取HTML源码信息(Porschev)
///</summary>
///<param name="url">获取地址</param>
///<returns>HTML源码</returns>
protected string GetHtml(string url)  {
string _value = "";
HttpWebRequest req;
HttpWebResponse res;
Stream ReceiveStream;
StreamReader sr;
req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
req.KeepAlive = false;
req.Referer = url;
req.UserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)";
res = req.GetResponse() as HttpWebResponse;
ReceiveStream = res.GetResponseStream();
sr = new StreamReader(ReceiveStream, Encoding.GetEncoding("GB2312"));
_value = HttpUtility.UrlDecode(sr.ReadToEnd());
sr.Close();
ReceiveStream.Close();
res.Close();
return _value;
}
#endregion
Tips 1:
/// <summary>
/// 获取用户ip地址,避免ip代理
/// </summary>
/// <returns>用户ip地址</returns>
public string GetIp()    {
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];            if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];                  }
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息