当前位置:首页 > PHP教程 > php应用 > 列表

php curl 伪造IP来源实例

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-30 13:23:19 浏览: 评论:0 

php curl 太强大了,它不但可以模仿用户登录,还可以模仿用户IP地址,为伪造IP来源,本实例仅供参考.

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

  1. <?php 
  2. $ch = curl_init(); 
  3.     
  4. $url = "http://localhost/target_ip.php"
  5.     
  6. $header = array
  7.   'CLIENT-IP:58.68.44.61'
  8.   'X-FORWARDED-FOR:58.68.44.61'
  9. ); 
  10.     
  11. curl_setopt($ch, CURLOPT_URL, $url); 
  12. curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
  13.     
  14. curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 
  15.     
  16. $page_content = curl_exec($ch); 
  17.     
  18. curl_close($ch); 
  19.     
  20. echo $page_content
  21.     
  22. ?> 

请求的目标文件target_ip.php,代码如下:

  1. <?php 
  2. echo getenv('HTTP_CLIENT_IP'); 
  3. echo getenv('HTTP_X_FORWARDED_FOR'); 
  4. echo getenv('REMOTE_ADDR'); 
  5. ?> 

目标文件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代码如下:

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

2.php代码如下:

  1. function getClientIp() { 
  2.     if (!emptyempty($_SERVER["HTTP_CLIENT_IP"])) 
  3.         $ip = $_SERVER["HTTP_CLIENT_IP"]; 
  4.     else if (!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"])) 
  5.         $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
  6.     else if (!emptyempty($_SERVER["REMOTE_ADDR"])) 
  7.         $ip = $_SERVER["REMOTE_ADDR"]; 
  8.     else 
  9.         $ip = "err"
  10.     return $ip
  11. echo "IP: " . getClientIp() . ""
  12. echo "referer: " . $_SERVER["HTTP_REFERER"]; 

伪造成功,这是不是给“刷票”的朋友提供了很好的换IP的方案.

Tags: curl 伪造IP 来源实例

分享到: