应如何取B/S的B端的IP
2016-03-30 11:45
239 查看
我们常讨论说要取真实IP,不同场景所谓的真实IP含义不一样。
如你要根据客户端IP去判断客户所在区域,那么要记录客户的出口IP,这里的出口IP才是你所谓的真实IP。
如你要判断多个客户端是不是同一个,那么需要同时使用外网IP和内网IP才能区分:
因为若仅使用内网IP,不同的内网有相同的内网IP;
若仅使用外网IP,同一个内网的出口(外网IP)是同一个。
以上明白后,我们继续看:
HTTP请求记录的IP从内网到外网所有网关的IP都会记录在Header里
内网的IP依次记录在HTTP_X_FORWARDED_FOR,按,;或空格隔开。最外面的IP记录在REMOTE_ADDR。所以根据您的需求去取舍吧。
如你要根据客户端IP去判断客户所在区域,那么要记录客户的出口IP,这里的出口IP才是你所谓的真实IP。
如你要判断多个客户端是不是同一个,那么需要同时使用外网IP和内网IP才能区分:
因为若仅使用内网IP,不同的内网有相同的内网IP;
若仅使用外网IP,同一个内网的出口(外网IP)是同一个。
以上明白后,我们继续看:
HTTP请求记录的IP从内网到外网所有网关的IP都会记录在Header里
内网的IP依次记录在HTTP_X_FORWARDED_FOR,按,;或空格隔开。最外面的IP记录在REMOTE_ADDR。所以根据您的需求去取舍吧。
var REMOTE_ADDR = Request.ServerVariables["REMOTE_ADDR"]; var HTTP_X_FORWARDED_FOR = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
相关文章推荐
- break 语句有一个可选参数,表示跳出几层循环
- 柳峰微信公众平台开发教程企业号修改篇(企业菜单篇)
- PHP获取网页所有连接的方法(附demo源码下载)
- Leetcode 171
- uestc1139菲波拉契数制升级版
- 柳峰微信公众平台开发教程企业号修改篇(企业菜单篇)
- Alternative PHP Cache ( APC )
- matlab 3D绘图详解
- 常见验证码的弱点与验证码识别
- iOS quartzCore第二章——CAEAGLLayer简介
- Android中通过ViewHelper.setTranslationY实现View移动控制(NineOldAndroids开源项目)
- 人脸识别简史与近期进展
- poj 1147 Binary codes
- 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。
- Photoshop CS6设计一个健身房VIP会员卡
- js怎样替换反斜杠
- C语言格式输入函数scanf()详解
- Angular.js、React.js整合
- zTree树的模糊搜索
- ajax异步验证用户名密码,提示路径错误