关于asp.net如何获取浏览器访问的IP地址?

互联网 17-7-20
本篇文章主要介绍了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

以上就是关于asp.net如何获取浏览器访问的IP地址?的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: webkit
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:关于.net使用Cache框架如何给程序添加Cache的实例

相关资讯