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["REMOTE_ADDR"];
上述代码里的HTTP_VIA和HTTP_X_FORWARDED_FOR,都是从客户端提交的Header里获取的,而在正常的HTTP交互中,REMOTE_ADDR是无法伪造的(注),
所以如果某个网站是通过上面的代码获取IP,那么我们只要在Header里随意设置HTTP_VIA和X_FORWARDED_FOR,就可以达到伪造IP的目的,可以使用FireFox的插件“Modify Headers”来测试,用它添加Header
注:实际上,REMOTE_ADDR也是可以伪造的,但是会造成无法正常接收数据,好比写信时,发件人写假地址,那当然不可能收到对方的回复了
相关推荐
-
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
-
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
-
批处理获取网卡名称的代码(附修改IP、网关、DNS脚本)
复制代码 代码如下: ::用ipconfig /all命令获取网卡名称. FOR /F "tokens=2*" %%i IN ('ipconfig/all^|find /i "Ethernet adapter "') DO set name=%%j ::用for命令删除网卡名称后面的冒号. FOR /F "tokens=1* delims=:" %%i in ("%name%") do set 网卡名称=%%i 套用上面的脚本
-
ASP.Net获取客户端网卡MAC的小例子
复制代码 代码如下: using System.Text.RegularExpressions;using System.Diagnostics;public class test{ public test {} public static string GetCustomerMac(string IP) //para IP is the clients IP { string dirResults="&qu
-
asp怎么获取毫秒数实现代码
复制代码 代码如下: <%@ Language=VBScript %><%Response.Expires =0 %> <DOCTYPE html public='-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> <HTML xmlns="http://www.w3.org/1999/xh
-
asp.net实现获取客户端详细信息
本文实例讲述了asp.net实现获取客户端详细信息代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下: 其中aspx页面的控件代码: 复制代码 代码如下: <asp:ListBox runat="server" ID="lbHoverTreeInfo" ClientIDMode="Static"> </asp:ListBox> 以下是实现代码: using System; using System.W
-
c#获取客户端IP地址(考虑代理)
说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己在项目中做过的事情,同时也想抛砖引玉.参考的博文及其作者在下文均有提及.待到自己以后对HTTP.TCP/IP等知识学深入了,一定再来这里深入讨论这个内容. 一.名词 首先说一下接下来要讲到的一些名词. 在Web开发中,我们大多都习惯使用HTTP请求头中的某些属性来获取客户端的IP地址,常见的属性是REMOTE_ADDR.HTTP_VIA和HTTP_X_F
-
Javascript 判断客户端浏览器类型代码
复制代码 代码如下: <script type="text/javascript"> /*详细方法1*/ function CheckBrowser() { var app=navigator.appName; var verStr=navigator.appVersion; //火狐浏览器 if (app.indexOf('Netscape') != -1) { alert("你使用的是Netscape浏览器或火狐浏览器."); } else if (
随机推荐
- JavaScript实现换肤功能
- 14个有用的Jquery技巧分享
- jquery中的$(document).ready()与window.onload的区别
- Bootstrap与Angularjs的模态框实例代码
- ExtJS PropertyGrid中使用Combobox选择值问题
- 浅析Java基于Socket的文件传输案例
- js对象转json数组的简单实现案例
- JavaScript对象和字串之间的转换实例探讨
- destoon复制新模块的方法
- python通过ElementTree操作XML获取结点读取属性美化XML
- C++基于对话框的程序的框架实例
- mysql 5.7更改数据库的数据存储位置的解决方法
- 利用ActiveX控件InetCtls.Inet在ASP中实现新闻小偷
- Java线程模型缺陷
- JavaScript 在线压缩和格式化收藏
- 跨域表单提交状态的变相判断代码
- 使用PyInstaller将Python程序文件转换为可执行程序文件
- java中实现汉字按照拼音排序(示例代码)
- Python中使用支持向量机SVM实践
- JS回调函数原理与用法详解【附PHP回调函数】