如何通过PHP的curl库伪造IP地址和HTTP头部信息?

更新于
2026-09-26 08:09:21
2阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计309个文字,预计阅读时间需要2分钟。

如何通过PHP的curl库伪造IP地址和HTTP头部信息?

curl 功能强大,但只能伪造 $SERVER[HTTP_X_FORWARDED_FOR]。对于大量IP地址的检测程序来说,$SERVER[REMOTE_ADDR] 很难被伪造:- 首先是 client.php 的代码: 01: $headers['CLIENT-IP']='202.103.229.40'; 02

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

首先是client.php的代码

如何通过PHP的curl库伪造IP地址和HTTP头部信息?

01 $headers['CLIENT-IP'] ='202.103.229.40'; 02 $headers['X-FORWARDED-FOR'] ='202.103.229.40'; 03 04 $headerArr=array(); 05 foreach($headersas$n=>$v) { 06 $headerArr[] =$n.':'.$v; 07 } 08 09 ob_start(); 10 $ch= curl_init(); 11 curl_setopt ($ch, CURLOPT_URL,"localhost/curl/server.php"); 12 curl_setopt ($ch, CURLOPT_HTTPHEADER ,$headerArr);//构造IP 13 curl_setopt ($ch, CURLOPT_REFERER,"www.163.com/"); //构造来路 14 curl_setopt($ch, CURLOPT_HEADER, 1); 15 16 curl_exec($ch); 17 curl_close ($ch); 18 $out= ob_get_contents(); 19 ob_clean(); 20 21 echo$out;

然后是server.php

01 functionGetIP(){ 02 if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])) 03 $cip=$_SERVER["HTTP_CLIENT_IP"]; 04 elseif(!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"])) 05 $cip=$_SERVER["HTTP_X_FORWARDED_FOR"]; 06 elseif(!emptyempty($_SERVER["REMOTE_ADDR"])) 07 $cip=$_SERVER["REMOTE_ADDR"]; 08 else 09 $cip="无法获取!"; 10 return$cip; 11 } 12 echo"<br>访问IP: ".GetIP()."<br>"; 13 echo"<br>访问来路: ".$_SERVER["HTTP_REFERER"];

本文共计309个文字,预计阅读时间需要2分钟。

如何通过PHP的curl库伪造IP地址和HTTP头部信息?

curl 功能强大,但只能伪造 $SERVER[HTTP_X_FORWARDED_FOR]。对于大量IP地址的检测程序来说,$SERVER[REMOTE_ADDR] 很难被伪造:- 首先是 client.php 的代码: 01: $headers['CLIENT-IP']='202.103.229.40'; 02

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

首先是client.php的代码

如何通过PHP的curl库伪造IP地址和HTTP头部信息?

01 $headers['CLIENT-IP'] ='202.103.229.40'; 02 $headers['X-FORWARDED-FOR'] ='202.103.229.40'; 03 04 $headerArr=array(); 05 foreach($headersas$n=>$v) { 06 $headerArr[] =$n.':'.$v; 07 } 08 09 ob_start(); 10 $ch= curl_init(); 11 curl_setopt ($ch, CURLOPT_URL,"localhost/curl/server.php"); 12 curl_setopt ($ch, CURLOPT_HTTPHEADER ,$headerArr);//构造IP 13 curl_setopt ($ch, CURLOPT_REFERER,"www.163.com/"); //构造来路 14 curl_setopt($ch, CURLOPT_HEADER, 1); 15 16 curl_exec($ch); 17 curl_close ($ch); 18 $out= ob_get_contents(); 19 ob_clean(); 20 21 echo$out;

然后是server.php

01 functionGetIP(){ 02 if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])) 03 $cip=$_SERVER["HTTP_CLIENT_IP"]; 04 elseif(!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"])) 05 $cip=$_SERVER["HTTP_X_FORWARDED_FOR"]; 06 elseif(!emptyempty($_SERVER["REMOTE_ADDR"])) 07 $cip=$_SERVER["REMOTE_ADDR"]; 08 else 09 $cip="无法获取!"; 10 return$cip; 11 } 12 echo"<br>访问IP: ".GetIP()."<br>"; 13 echo"<br>访问来路: ".$_SERVER["HTTP_REFERER"];