从刷票了解获得客户端IP的方法


Posted in PHP onSeptember 21, 2015

前两个星期帮一个朋友的亲戚的孩子刷票,谁让咱们是程序员呢。这当中也遇到过重装系统,除灰尘,淘宝购物,盗QQ,下电影,某一个软件为什么不能使用等等,要是说不会,他们就说你电脑技术不是挺牛逼的吗,这点问题都解决不了。

刷票,分为多种限制,注册用户,验证码,以及IP限制。这个刷票网站,而不,是这个投票网站,限制了IP。如果要突破限制,我们需要了解如何获得用户的IP。

getenv('HTTP_X_FORWARDED_FOR')
getenv('HTTP_CLIENT_IP')
getenv('REMOTE_ADDR')

HTTP_X_FORWARDED_FOR

这个是从http header头部获得,他的格式是A ip, B ip, C ip。出现这种情况的原因有两种

一个网站由于流量过大,使用负载均衡,所以在应用程序前面放一个负载均衡器,用户无法直接访问到。
用户使用代理去访问。
用户先是使用A IP,每增加一层代理,这个头就会在后面多增加一个IP,以逗号分割,最后到达真正的web容器。 只要是头部获得信息,都是可以被伪造的。所以这种情况使用A IP 有可能不是用户的真实IP。所以我们这种情况,我们只能把连接负载均衡的IP当做用户的真实IP,至少这个数据是正确的。但是这个IP可能是用户的代理IP,不是用户的真实IP。不过这种情况至少比用户的假ip好一些。

HTTP_CLIENT_IP

这个也是从header头部获得,本来是打算记录用户真实IP,但是很少使用到。

REMOTE_ADDR

这个就是获得连接的IP,只有小网站才这么使用,直接把数据暴漏出去,站点就是一个单点,没有任何的负载均衡。如果上层使用了pxory,这个数据就是proxy的IP。

而我作恶就是直接伪造x-forwarder-for数据,然后欺骗他们,不过没过几天,这个漏洞被发现了,然后我就换成使用代理的方式的直接刷的。

PHP 相关文章推荐
关于PHP5 Session生命周期介绍
Mar 02 PHP
PHP 函数学习简单小结
Jul 08 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
Jan 07 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
ThinkPHP数据操作方法总结
Sep 28 PHP
深入浅析Yii admin的权限控制
Aug 31 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
thinkPHP框架中执行原生SQL语句的方法
Oct 25 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 #PHP
分享ThinkPHP3.2中关联查询解决思路
Sep 20 #PHP
使用PHPCMS搭建wap手机网站
Sep 20 #PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 #PHP
PHP执行SQL文件并将SQL文件导入到数据库
Sep 17 #PHP
如何使用PHP对网站验证码进行破解
Sep 17 #PHP
浅谈php+phpStorm+xdebug配置方法
Sep 17 #PHP
You might like
php+highchats生成动态统计图
2014/05/21 PHP
javascript EXCEL 操作类代码
2009/07/30 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
使用webpack打包koa2 框架app
2018/02/02 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
浅谈Python的list中的选取范围
2018/11/12 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
python实现坦克大战
2020/04/24 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
非功能性需求都包括哪些方面
2013/10/29 面试题
学生干部培训方案
2014/06/12 职场文书
经营理念口号
2014/06/21 职场文书
申报材料格式
2014/12/30 职场文书
民政工作个人总结
2015/02/28 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers