PHP curl伪造IP地址和header信息代码实例


Posted in PHP onApril 27, 2015

curl虽然功能强大,但是只能伪造$_SERVER["HTTP_X_FORWARDED_FOR"],对于大多数IP地址检测程序来说,$_SERVER["REMOTE_ADDR"]很难被伪造:

首先是client.php的代码

$headers['CLIENT-IP'] = '202.103.229.40';  

$headers['X-FORWARDED-FOR'] = '202.103.229.40'; 

 

$headerArr = array();  

foreach( $headers as $n => $v ) {  

    $headerArr[] = $n .':' . $v;   

}

 

ob_start();

$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, "http://localhost/curl/server.php");

curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr );  //构造IP

curl_setopt ($ch, CURLOPT_REFERER, "http://www.163.com/ ");   //构造来路

curl_setopt( $ch, CURLOPT_HEADER, 1);

 

curl_exec($ch);

curl_close ($ch);

$out = ob_get_contents();

ob_clean();

 

echo $out;

然后是server.php

function GetIP(){

    if(!emptyempty($_SERVER["HTTP_CLIENT_IP"]))

        $cip = $_SERVER["HTTP_CLIENT_IP"];

    else if(!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"]))

        $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];

    else if(!emptyempty($_SERVER["REMOTE_ADDR"]))

        $cip = $_SERVER["REMOTE_ADDR"];

    else

    $cip = "无法获取!";

    return $cip;

}

echo "<br>访问IP: ".GetIP()."<br>";

echo "<br>访问来路: ".$_SERVER["HTTP_REFERER"];
PHP 相关文章推荐
用PHP实现将GB编码转换为UTF8
Nov 25 PHP
PHP 编程安全性小结
Jan 08 PHP
一个PHP的String类代码
Apr 20 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 PHP
PHP strtotime函数用法、实现原理和源码分析
Feb 04 PHP
php简单实现快速排序的方法
Apr 04 PHP
thinkphp 验证码 的使用小结
May 07 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 PHP
JavaScript实现滚动栏效果的方法
Apr 27 #PHP
php curl 上传文件代码实例
Apr 27 #PHP
php把大写命名转换成下划线分割命名
Apr 27 #PHP
PHP加密解密字符串汇总
Apr 26 #PHP
php开发中的页面跳转方法总结
Apr 26 #PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
Apr 26 #PHP
PHP开启opcache提升代码性能
Apr 26 #PHP
You might like
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
Python中optparse模块使用浅析
2015/01/01 Python
Python KMeans聚类问题分析
2018/02/23 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
经典c++面试题五
2014/12/17 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
论文诚信承诺书
2014/05/23 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL