热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

本篇文章主要介绍了asp.net获取客户端浏览器访问的IP地址的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本篇文章主要介绍了asp.net 获取客户端浏览器访问的IP地址的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

1、js方法


 
 
 
   
   
    
   
 
  
 

2、后台代码实现


#region IP地址限制功能 2017-07-18 
 
 
   ///  
   ///  
   ///  
   ///  
   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; 
   } 
 
 
   ///  
   /// 获取远程访问用户的Ip地址 
   ///  
   /// 返回Ip地址 
   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; 
   } 

   ///  
   /// 根据IP获取省市 
   ///  
   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; 
   } 

   ///  
   /// Post请求数据 
   ///  
   ///  
   ///  
   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; 
   } 
 
 
   ///  
   /// 处理所要的数据 
   ///  
   ///  
   ///  
   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地址?的详细内容,更多请关注其它相关文章!


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。使用Gson解析json成对象时,默认将json里对应字段的值解析到java对象里对应字段的属性里面。然而,当我们自己定义的java对象里的属性名与json里的字段名不一样时,我们可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。本文介绍了使用@SerializedName注解解析json数据的方法,并给出了具体的使用示例。 ... [详细]
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
author-avatar
卡夫卡咯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有