php搞定ip伪装的两种方式
$url = "http://www.baidu.com";
$host = 'www.baidu.com';
$data = "要发送的数据";
$ip='121.186.1.57';
$headers['CLIENT-IP'] = $ip;  
$headers['X-FORWARDED-FOR'] = $ip; 
$headerArr = array();
  
foreach( $headers as $n => $v ) {  
    $headerArr[] = $n .':' . $v;   
}
$ch = curl_init();  
$timeout = 5;  
curl_setopt ($ch, CURLOPT_URL, $url);  
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr );  //构造IP 
// 我们在POST数据哦!
curl_setopt($ch, CURLOPT_POST, 1);
// 把post的变量加上
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$file_contents = curl_exec($ch);  
curl_close($ch); 
var_dump($file_contents);
第二种:采用socket请求的方式
$host = '192.168.1.100';
 $fp = fsockopen($host,80);
                    if(!$fp)
                    {
                            die('创建连接失败,检查主机地址或网络连接');
                    }
                    //构造http请求串
                    $send = "POST $path HTTP/1.1\r\n";
                    $send .= "Host: $host\r\n";
                    $send .= "Content-type: application/x-www-form-urlencoded\r\n";
        //                    $send .= 'X-FORWARDED-FOR:8.8.8.8' . "\r\n";
                    $send .= "CLIENT-IP:$per_ip\r\n";//伪造IP
                    $send .= "Content-length: " . strlen($data) . "\r\n";
                    $send .= "Connection: close\r\n\r\n";
                    $send .= $data . "\r\n\r\n";
                    //发送请求
                    fwrite($fp, $send, strlen($send));
                    //读取返回信息
                    $back = '';
                    while(!feof($fp))
                    {
                        $back .= fread($fp, 1024);
                    }
                    fclose($fp);
                    if(strpos($back, '成功'))
                    {
                        $flag = '成功';
   
                        sleep(1);
                    }
                   
                    
                
                
            
        
浙公网安备 33010602011771号