PHP使用curl伪造IP地址和header信息
2024-10-07 22:42:08
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 "
访问IP: ".GetIP()."
";
echo "
访问来路: ".$_SERVER["HTTP_REFERER"];
最新文章
- Asp.NET MVC 使用 SignalR 实现推送功能二(Hubs 在线聊天室 获取保存用户信息)
- BootStrap table使用
- css 导航,菜单对应页面切换效果实现方法
- Android项目结构分析
- iOS 推荐学习__bridge等ARC知识的好资料
- 升级xcode6和ios8后,unity遇到的一些小问题
- 第1章 游戏之乐——NIM(3)两堆石头的游戏
- linux下启动某个进程
- IOS分类(Category)
- python命令行解析工具argparse模块【4】
- html精确定位
- .Net之路,感谢对我深远影响的三位前辈
- Flink学习(二)Flink中的时间
- centos7.5搭建cdh5.13.0
- leetcode287
- Python Anaconda使用
- opengl 结果白屏解决方法
- 重新设置Linux的IP地址(该操作会永久更改ip地址)
- linux下设置mysql表名不区分大小写
- K8S镜像删除及环境清理
热门文章
- 使用注解@Transient使表中没有此字段
- C语言多维数组的地址
- DataTables在回调方法中使用api
- 搭建MHA环境【1】规划+linux相关的设置
- 什么是REST架构 - z
- Linux下用Mytop监控MySQL资源
- hadoop 1.2.1 安装步骤 伪分布式
- bzoj1753 [Usaco2005 qua]Who's in the Middle
- poj 2411 Mondriaan's Dream_状态压缩dp
- kafka与Spring的集成