当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net 获取客户端浏览器访问的IP地址的实例代码

asp.net 获取客户端浏览器访问的IP地址的实例代码

2017年12月08日  | 移动技术网IT编程  | 我要评论

受了点伤吉他谱,神话venus,女体狂乱

本文介绍了asp.net 获取客户端浏览器访问的ip地址的实例代码,分享给大家,自己也留个笔记

1、js方法

<!doctype html> 
<html> 
<head> 
  <meta charset="utf-8" /> 
  <title>document</title> 
  <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>  
  <script type="text/javascript">  
    document.write('ip地址:' + returncitysn["cip"] + ', 城市编码:' + returncitysn["cid"] + ', 地区:' + returncitysn["cname"]); 
  </script> 
</head> 
<body>  
</body> 
</html> 

2、后台代码实现

#region ip地址限制功能 2017-07-18 
 
 
   /// <summary> 
   ///  
   /// </summary> 
   /// <returns></returns> 
   public bool isipvalidate() 
   { 
     bool flag = false; 
     string userip = getloginip(); 
     string[] addr = getaddressbyip(userip); 
     string addrs = addr[0] + addr[1]; 
     if ("北京".equals(addr[0]) || "北京".equals(addr[1])) 
     { 
       flag = true; 
     } 
     return flag; 
   } 
 
 
   /// <summary> 
   /// 获取远程访问用户的ip地址 
   /// </summary> 
   /// <returns>返回ip地址</returns> 
   protected string getloginip() 
   { 
     string loginip = ""; 
     //request.servervariables[""]--获取服务变量集合  
     if (request.servervariables["remote_addr"] != null) //判断发出请求的远程主机的ip地址是否为空 
     { 
       //获取发出请求的远程主机的ip地址 
       loginip = request.servervariables["remote_addr"].tostring(); 
     } 
     //判断登记用户是否使用设置代理 
     else if (request.servervariables["http_via"] != null) 
     { 
       if (request.servervariables["http_x_forwarded_for"] != null) 
       { 
         //获取代理的服务器ip地址 
         loginip = request.servervariables["http_x_forwarded_for"].tostring(); 
       } 
       else 
       { 
         //获取客户端ip 
         loginip = request.userhostaddress; 
       } 
     } 
     else 
     { 
       //获取客户端ip 
       loginip = request.userhostaddress; 
     } 
     return loginip; 
   } 
 
 
 
 
   /// <summary> 
   /// 根据ip获取省市 
   /// </summary> 
   public string[] getaddressbyip(string ip) 
   { 
     string posturl = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=" + ip; 
     string res = getdatabypost(posturl);//该条请求返回的数据为:res=1t115.193.210.0t115.194.201.255t中国t浙江t杭州t电信 
     string[] arr = getareainfolist(res); 
     return arr; 
   } 
 
 
   /// <summary> 
   /// post请求数据 
   /// </summary> 
   /// <param name="url"></param> 
   /// <returns></returns> 
   public string getdatabypost(string url) 
   { 
     httpwebrequest req = (httpwebrequest)webrequest.create(url); 
     string s = "anything"; 
     byte[] requestbytes = system.text.encoding.ascii.getbytes(s); 
     req.method = "post"; 
     req.contenttype = "application/x-www-form-urlencoded"; 
     req.contentlength = requestbytes.length; 
     stream requeststream = req.getrequeststream(); 
     requeststream.write(requestbytes, 0, requestbytes.length); 
     requeststream.close(); 
 
 
     httpwebresponse res = (httpwebresponse)req.getresponse(); 
     streamreader sr = new streamreader(res.getresponsestream(), system.text.encoding.default); 
     string backstr = sr.readtoend(); 
     sr.close(); 
     res.close(); 
     return backstr; 
   } 
 
 
   /// <summary> 
   /// 处理所要的数据 
   /// </summary> 
   /// <param name="ip"></param> 
   /// <returns></returns> 
   public static string[] getareainfolist(string ipdata) 
   { 
     //1t115.193.210.0t115.194.201.255t中国t浙江t杭州t电信 
     string[] areaarr = new string[10]; 
     string[] newareaarr = new string[2]; 
     try 
     { 
       //取所要的数据,这里只取省市 
       areaarr = ipdata.split('t'); 
       newareaarr[0] = areaarr[4];//省 
       newareaarr[1] = areaarr[5];//市 
     } 
     catch (exception e) 
     { 
 
 
     } 
     return newareaarr; 
   } 
 
 
   #endregion 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网