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

PHP用CURL伪造来源IP与来源URL地址程序代码

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-11 16:23:58 浏览: 评论:0 

在php中利用curl伪造来源IP是非常的方法的,下面来给大家介绍一个php 伪造来源IP的例子,但经过测试不能伪造$_SERVER["REMOTE_ADDR"]的来源.

test.php文件,代码如下:

  1. <?php 
  2. ob_start(); 
  3. $ch = curl_init(); 
  4. curl_setopt($ch, CURLOPT_URL, "http://www.xxx.cn/test/test2.php"); 
  5. curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:1.1.1.1''CLIENT-IP:2.2.2.2'));  //伪造IP 
  6. curl_setopt($ch, CURLOPT_REFERER, "http://www.phpfensi.com/ ");   //伪造来源网址 
  7. curl_setopt($ch, CURLOPT_HEADER, 1); 
  8. curl_exec($ch); 
  9. curl_close($ch); 
  10. $out = ob_get_contents(); 
  11. ob_clean(); 
  12. echo $out
  13. ?> 

test2.php文件,代码如下:

  1. <?php 
  2. function getClientIp() { 
  3. if (!emptyempty($_SERVER["HTTP_CLIENT_IP"])) 
  4. $ip = $_SERVER["HTTP_CLIENT_IP"]; 
  5. else if (!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"])) 
  6. $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
  7. else if (!emptyempty($_SERVER["REMOTE_ADDR"])) 
  8. $ip = $_SERVER["REMOTE_ADDR"]; 
  9. else 
  10. $ip = "err"
  11. return $ip
  12. echo "<br />IP: " . getClientIp() . "  HTTP_CLIENT_IP-: " . $_SERVER["HTTP_CLIENT_IP"] . "    HTTP_X_FORWARDED_FOR-: " . $_SERVER["HTTP_X_FORWARDED_FOR"] . "    REMOTE_ADDR-: " . $_SERVER["REMOTE_ADDR"] . "   "
  13. echo "<br />referer: " . $_SERVER["HTTP_REFERER"]; 
  14. ?> 
  15. //执行结果: 
  16. HTTP/1.1 200 OK 
  17. Server: DWS/01.03Z33 
  18. Date: Mon, 09 Jun 2014 09:27:09 GMT 
  19. Content-Type: text/html 
  20. Transfer-Encoding: chunked 
  21. Connection: keep-alive 
  22. Vary: Accept-Encoding 
  23. <br />IP: 2.2.2.2  HTTP_CLIENT_IP-: 2.2.2.2    HTTP_X_FORWARDED_FOR-: 1.1.1.1     
  24. REMOTE_ADDR-: 127.0.0.1   <br />referer: http://www.phpfensi.com/ 

但是暂时还无法伪造骗过:$_SERVER["REMOTE_ADDR"],所以建议大家记录IP时使用$_SERVER["REMOTE_ADDR"].

Tags: CURL伪造来源 PHP来源URL

分享到: