从刷票了解获得客户端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 相关文章推荐
隐性调用php程序的方法
Mar 09 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
使用php判断网页是否gzip压缩
Jun 25 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
10款实用的PHP开源工具
Oct 23 PHP
PHP中类的继承和用法实例分析
May 24 PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
PHP配置ZendOpcache插件加速
Feb 14 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 PHP
PHP利用curl发送HTTP请求的实例代码
Jul 09 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生成html分页列表的代码
2007/03/18 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
js+xml生成级联下拉框代码
2012/07/24 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
在python image 中安装中文字体的实现方法
2019/08/22 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
Django用户身份验证完成示例代码
2020/04/03 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
python热力图实现简单方法
2021/01/29 Python
精选奢华:THE LIST
2019/09/05 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
小学教师培训感言
2014/02/11 职场文书
无私奉献演讲稿
2014/09/04 职场文书
python中subplot大小的设置步骤
2021/06/28 Python
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL
深入理解go slice结构
2021/09/15 Golang