This article mainly introduces the PHP curl fake IP address and header information code example, this article gives the server and client implementation code, to provide forgery and server-side detection code, need friends can refer to the
Although Curl is powerful, but can only forge $_server["Http_x_forwarded_for"], for most IP address detection program, $_server["REMOTE_ADDR" is difficult to be forged:
First, it's client.php code.
The code is as follows:
$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 ); //Structure IP
Curl_setopt ($ch, CURLOPT_REFERER, "http://www.163.com/ "); //Structure
Curl_setopt( $ch, CURLOPT_HEADER, 1);
Curl_exec($ch);
Curl_close ($ch);
$out = ob_get_contents();
Ob_clean();
Echo $out;
And then the server.php.
The code is as follows:
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 = "Unable to get!";
Return $cip;
}
echo "
Access IP: ". GetIP (). "
"; echo "
Access routing: ". $_server[" Http_referer "];