<p>第一种:写了段代码伪装ip,原理是,客户访问网站,获取客户ip,伪装客户ip去访问数据源。采集后处理缓存到/tmp公共目录(省了空间,不占用自己的空间),然后输出到客户浏览器。代码如下:</p><pre class="brush:php;toolbar:false">$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($headersas$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);</pre><p>第二种:采用socket请求的方式</p><pre class="brush:php;toolbar:false">$host='192.168.1.100';
$fp=fsockopen($host,80);
if(!$fp)
{
die('创建连接失败,检查主机地址或网络连接');
}
//构造http请求串
$send="POST$pathHTTP/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);
}</pre><p> </p>