从刷票了解获得客户端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支持断点续传的源码
May 16 PHP
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
php实现singleton()单例模式实例
Nov 06 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
PHP静态延迟绑定和普通静态效率的对比
Oct 20 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHP内置函数生成随机数实例
Jan 18 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 PHP
goto语法在PHP中的使用教程
Sep 17 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与C#的值类型指向区别的详解
2013/05/21 PHP
PHP引用(&)各种使用方法实例详解
2014/03/20 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
python 字典访问的三种方法小结
2019/12/05 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
数据库笔试题
2013/05/09 面试题
征婚广告词
2014/03/17 职场文书
2014年化验员工作总结
2014/11/18 职场文书
创先争优承诺书
2015/01/20 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
基于Redis位图实现用户签到功能
2021/05/08 Redis