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"];

最新文章

  1. Asp.NET MVC 使用 SignalR 实现推送功能二(Hubs 在线聊天室 获取保存用户信息)
  2. BootStrap table使用
  3. css 导航,菜单对应页面切换效果实现方法
  4. Android项目结构分析
  5. iOS 推荐学习__bridge等ARC知识的好资料
  6. 升级xcode6和ios8后,unity遇到的一些小问题
  7. 第1章 游戏之乐——NIM(3)两堆石头的游戏
  8. linux下启动某个进程
  9. IOS分类(Category)
  10. python命令行解析工具argparse模块【4】
  11. html精确定位
  12. .Net之路,感谢对我深远影响的三位前辈
  13. Flink学习(二)Flink中的时间
  14. centos7.5搭建cdh5.13.0
  15. leetcode287
  16. Python Anaconda使用
  17. opengl 结果白屏解决方法
  18. 重新设置Linux的IP地址(该操作会永久更改ip地址)
  19. linux下设置mysql表名不区分大小写
  20. K8S镜像删除及环境清理

热门文章

  1. 使用注解@Transient使表中没有此字段
  2. C语言多维数组的地址
  3. DataTables在回调方法中使用api
  4. 搭建MHA环境【1】规划+linux相关的设置
  5. 什么是REST架构 - z
  6. Linux下用Mytop监控MySQL资源
  7. hadoop 1.2.1 安装步骤 伪分布式
  8. bzoj1753 [Usaco2005 qua]Who's in the Middle
  9. poj 2411 Mondriaan's Dream_状态压缩dp
  10. kafka与Spring的集成