伪造ip请求代码

转自:http://gaojohn.blogchina.com/1257810.html

HTTP_CLIENT_IP:可通过http头伪造
HTTP_X_FORWARDED_FOR:可通过http头伪造
REMOTE_ADDR:可能是用户真实IP也可能是代理IP

服务端获取IP地址 http://www.taoyiz.com/util/ip 其代码如下:

$s_onlineip = getenv(‘HTTP_CLIENT_IP’);

echo “HTTP_CLIENT_IP:”.$s_onlineip.”<br/>\n”;

$s_onlineip = getenv(‘HTTP_X_FORWARDED_FOR’);

echo “HTTP_X_FORWARDED_FOR:”.$s_onlineip.”<br/>\n”;

$s_onlineip = getenv(‘REMOTE_ADDR’);

echo “REMOTE_ADDR:”.$s_onlineip.”<br/>\n”;

$s_onlineip = $_SERVER['REMOTE_ADDR'];

echo “\$_SERVER['REMOTE_ADDR']:”.$s_onlineip.”<br/>\n”;

客户端代码:
伪造IP测试:

$url = ‘http://www.taoyiz.com/util/ip’;

$data_string = ‘test=test’;

$URL_Info    =    parse_url($url);

$request = ”;

if (!isset($URL_Info["port"]))

$URL_Info["port"]=80;

$request.=”POST “.$URL_Info["path"].” HTTP/1.1\n”;

$request.=”Host: “.$URL_Info["host"].”\n”;

$request.=”Referer: “.$URL_Info["host"].”\n”;

$request.=”Content-type: application/x-www-form-urlencoded\n”;

$request.=”X-Forwarded-For:192.168.1.4\n”;//HTTP_X_FORWARDED_FOR的值

$request.=”client_ip:192.168.1.5\n”;//HTTP_CLIENT_IP的值

$request.=”Content-length: “.strlen($data_string).”\n”;

$request.=”Connection: close\n”;

$request.=”\n”;

$request.=$data_string.”\n”;
//套接字读取(原来可以这样用,直接对句柄fputs()和fgets()进行发送和接收)
$fp = fsockopen($URL_Info["host"], $URL_Info["port"]); fputs($fp, $request); $result = ”; while(!feof($fp)) { $result .= fgets($fp 1024); } fclose($fp); echo $result; 输出: HTTP_CLIENT_IP:192.168.1.5 HTTP_X_FORWARDED_FOR:192.168.1.4 REMOTE_ADDR:127.0.0.1 $_SERVER['REMOTE_ADDR']:127.0.0.1
代理IP测试:
$cUrl = curl_init();

curl_setopt($cUrl CURLOPT_URL $url);

curl_setopt($cUrl CURLOPT_RETURNTRANSFER 1);

curl_setopt($cUrl CURLOPT_HEADER 1);

curl_setopt($cUrl CURLOPT_USERAGENT “Mozilla/99.99″);

//curl_setopt($cUrl CURLOPT_TIMEOUT 10);

curl_setopt($cUrl CURLOPT_PROXY ’125.77.194.103:80′);

$c = curl_exec($cUrl);

curl_close($cUrl);

echo $c;

输出:

HTTP_CLIENT_IP:

HTTP_X_FORWARDED_FOR:

REMOTE_ADDR:125.77.194.103

$_SERVER['REMOTE_ADDR']:125.77.194.103

 

 

你可能感兴趣的:(IP)