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

本文介绍了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 

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

(0)

相关推荐

  • ASP.NET 获取客户端IP方法

    话不多说,请看代码: string requestClientIpAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (string.IsNullOrEmpty(requestClientIpAddress)) requestClientIpAddress = HttpContext.Current.Request.ServerVariables["REMOTE_A

  • ASP.NET获取真正的客户端IP地址的6种方法

    在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址. 要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取. 不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables(

  • Asp.net获取客户端IP常见代码存在的伪造IP问题探讨

    在网卡随便一搜: Asp.net 客户端IP 可以搜索到很多页面,提供的代码基本都类似于: 复制代码 代码如下: if (Request.ServerVariables["HTTP_VIA"] != null) return Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(new char[] { ',' })[0]; else return Request.ServerVariables["RE

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

    本文介绍了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"></scr

  • js判断非127开头的IP地址的实例代码

    js验证回送地址,IP地址不能以127开头 回送地址(127.x.x.x)是本机回送地址(Loopback Address) var ipNotStartWith127 = function(ip) { try { var data = ip.split("."), ip1; return 4 == data.length && 127 !== parseInt(data[0]) } catch (e) { return !1 } } console.log(ipNot

  • Java 获取本机IP地址的实例代码

    目录 前言 一.规则 二.获取 1.使用 2.工具类 前言 在Java中如何准确的获取到本机IP地址呢?网上大部分的做法是InetAddress.getLocalHost().getHostAddress().这的确能获取到本机IP地址,但是是不准确的.因为忽略了一个问题,网络环境是多变的,一台计算机不同的网卡有多个IP地址,Lan.WiFi.蓝牙.热点.虚拟机网卡等. 一.规则 127.xxx.xxx.xxx 属于 “loopback” 地址,即只能你自己的本机可见,就是本机地址,比较常见的有

  • VC实现将网址解析出所有ip地址的实例代码

    通过调用gethostbyname 系统函数进行解析 void GetHostNamebyIp(char* hostName) { if(NULL == hostName) { return; } int WSA_return = 0; WSADATA WSAData; HOSTENT *host_entry; char szIP[1024] = {0}; AfxMessageBox(hostName); WSA_return=WSAStartup(0x0202,&WSAData); if(0

  • 获取本机IP地址的实例(JavaScript / Node.js)

    --web 客户端JavaScript <!-- 调用方式 --> <body onload="checkCookie()"></body> function getYourIP() { const RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection; if (RTCPeerConne

  • Java实现获取内网的所有IP地址

    目录 题目描述 代码详解 效果展示 题目描述 在进行网络编程时,有时需要对局域网的所有主机进行遍历,为此需要获得内网的所以IP地址 题目实现:获得内网的所有IP地址的小应用. 解题思路 创建一个类:GainAlllpFrame,继承JFrame窗体类 定义一个gainAlllp()方法:用于获得所有IP,并显示在文本域中的方法 定义一个内部类Pinglp Thread,且是线程类.用于判断给定IP是否为内网IP的线程对象 线程类的执行逻辑是对指定的IP进行ping 访问 获得本机的IP地址和网段

  • 详解如何获取docker容器(container)的ip地址

    1. 进入容器内部后 cat /etc/hosts 会显示自己以及(– link)软连接的容器IP 2.使用命令 docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID> 或 docker inspect <container id> 或 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' c

  • Java获取电脑真实IP地址的示例代码

    /** * @author yins * @date 2018年8月12日下午9:53:58 */ import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; /** * 获取本地真正的IP地址,即获得有线或者无线WiFi地址. * 过滤虚拟机.蓝

  • Android 判断ip地址合法实现代码

    Android 判断ip地址合法实现代码 昨天,我在网上找了一下判断文本框内的字符串是否是合法的ip地址,自己想到了正则表达式,可是自己对这个却不熟,所以在网上查找了一些资料,最后终于是做出来了. 具体的代码很简单, public boolean isIP(String addr) { if(addr.length() < 7 || addr.length() > 15 || "".equals(addr)) { return false; } /** * 判断IP格式和范

  • Vee-validate 父组件获取子组件表单校验结果的实例代码

    vee-validate 是为 Vue.js 量身打造的表单校验框架,允许您校验输入的内容并显示对应的错误提示信息.它内置了很多常见的校验规则,可以组合使用多种校验规则,大部分场景只需要配置就能实现开箱即用,还支持自定义正则表达式.而且支持 40 多种语言,对本地化.多语言支持非常友好. 国内饿了么团队开源项目 Element UI 就用到了 vee-validate. vee-validate官网:https://baianat.github.io/vee-validate/ 使用方法 可查看

随机推荐