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方法
话不多说,请看代码: string requestClientIpAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (string.IsNullOrEmpty(requestClientIpAddress)) requestClientIpAddress = HttpContext.Current.Request.ServerVariables["REMOTE_A
-
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地址的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 (
随机推荐
- win10 oracle11g彻底删除并重装教程
- 谷歌浏览器不支持showModalDialog模态对话框的解决方法
- php 生成短网址原理及代码
- PHP集成百度Ueditor 1.4.3
- Vue编写多地区选择组件
- node.js实现端口转发
- 浅谈node.js中async异步编程
- WinForm实现为TextBox设置水印文字功能
- Shell脚本实现随机数多种方法介绍(date、random、uuid)
- python中django框架通过正则搜索页面上email地址的方法
- Javascript页面跳转常见实现方式汇总
- 轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
- SQL语句计算两个日期之间有多少个工作日的方法
- jQuery下的几个你可能没用过的功能
- PHP捕捉异常中断的方法
- PHP文件上传后缀名与文件类型对照表整理
- python应用文件读取与登录注册功能
- Android仿京东分类效果
- vue.js实现会动的简历(包含底部导航功能,编辑功能)
- 易语言保护壳的sdk代码