php curl 伪造IP来源的实例代码


Posted in PHP onNovember 01, 2012

curl发出请求的文件fake_ip.php:
代码

<?php 
$ch = curl_init(); 
$url = "http://localhost/target_ip.php"; 
$header = array( 
'CLIENT-IP:58.68.44.61', 
'X-FORWARDED-FOR:58.68.44.61', 
); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 
$page_content = curl_exec($ch); 
curl_close($ch); 
echo $page_content; 
?>

请求的目标文件target_ip.php:
<?php 
echo getenv('HTTP_CLIENT_IP'); 
echo getenv('HTTP_X_FORWARDED_FOR'); 
echo getenv('REMOTE_ADDR'); 
?>

目标文件target_ip里面的IP打印顺序是目前很多开源系统的IP获取顺序
访问fake_ip.php,看到结果:
58.68.44.61
58.68.44.61
127.0.0.1
实例
CURL确实很强悍,可以伪造IP和来源。
1.php 请求 2.php 。

1.php代码:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://localhost/2.php"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8')); //构造IP 
curl_setopt($ch, CURLOPT_REFERER, "https://3water.com/ "); //构造来路 
curl_setopt($ch, CURLOPT_HEADER, 1); 
$out = curl_exec($ch); 
curl_close($ch);

2.php代码如下:

function getClientIp() { 
if (!empty($_SERVER["HTTP_CLIENT_IP"])) 
$ip = $_SERVER["HTTP_CLIENT_IP"]; 
else if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) 
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
else if (!empty($_SERVER["REMOTE_ADDR"])) 
$ip = $_SERVER["REMOTE_ADDR"]; 
else 
$ip = "err"; 
return $ip; 
} 
echo "IP: " . getClientIp() . ""; 
echo "referer: " . $_SERVER["HTTP_REFERER"];

伪造成功,这是不是给“刷票”的朋友提供了很好的换IP的方案
PHP 相关文章推荐
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
PHP开发过程中常用函数收藏
Dec 14 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
PHP获取网址的顶级域名函数代码
Sep 24 PHP
PHP处理大量表单字段的便捷方法
Feb 07 PHP
PHP实现简单数字分页效果
Jul 26 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 #PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 #PHP
php eval函数用法总结
Oct 31 #PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 #PHP
php图片加中文水印实现代码分享
Oct 31 #PHP
php中防止恶意刷新页面的代码小结
Oct 31 #PHP
利用PHP生成静态HTML文档的原理
Oct 29 #PHP
You might like
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
Array.prototype 的泛型应用分析
2010/04/30 Javascript
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
chrome原生方法之数组
2011/11/30 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
python开发之thread线程基础实例入门
2015/11/11 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
python列表推导式操作解析
2019/11/26 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
医学院校毕业生自荐信范文
2014/01/01 职场文书
公司委托书格式范文
2014/10/09 职场文书
房屋买卖协议样本
2014/11/16 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
7个关于Python的经典基础案例
2021/11/07 Python
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers
移除Selenium中window.navigator.webdriver值
2022/06/10 Python