用curl 抓取 网页 被抓取网页所接受的ip 是哪个? 就是说用curl 抓取网页, 被抓取网页的那边显示的ip,是空间的ip 还是用户的ip? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 空间的ip没必要显示出来吧。应该是客户端的ip 空间的IP。也即抓取脚本所在服务器的IP. 确实是curl所在服务器的IP 答案给你了,想用什么IP就在什么地方Curl. 当然 curl 也是可以用代理的不是?:-) 用curl 过分频繁会被认为是采集 我想防止这种情况 如何解决 能借用 用户ip ? 或伪造看看这段代码 行不?<?phpfunction curl($destURL, $paramStr='',$flag='get',$ip='10.57.22.151',$fromurl='http://www.baidu.com'){ if(!extension_loaded('curl')) exit('系统没有扩展php_curl.dll,出错了。');$curl = curl_init(); if($flag=='post'){//post传递curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $paramStr); }curl_setopt($curl, CURLOPT_URL, $destURL);//地址curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.$ip, 'CLIENT-IP:'.$ip)); //构造IP curl_setopt($curl, CURLOPT_REFERER, $fromurl); curl_setopt($curl, CURLOPT_TIMEOUT, 10);#10s超时时间curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$str = curl_exec($curl);curl_close($curl);return $str;}//安徽合肥的IP地址段 60.166.0.0 60.166.16.158for($i=0;$i<=100;$i++){$getip='60.166.'.rand(0,16).'.'.rand(0,158) ;echo curl('网站服务器请求地址','参数','post',$getip,'模拟网站来路');}?> 要解决你的问题就是在能变换IP的机子上(ADSL)拨号 执行采集. 要么就是代理什么构造IP,自己实践一下不就出真知了? 就算通过代理服务器,它的ip不也是固定的吗? 我想做到每次ip不同,能否用代理服务器 php中url传参,乱码问题 PHP上传程序将结果传递变量到一个文本框。跨域名 怎样判断动态生成的复选框被选中 session变量不能传值 PHPexcel生成文件下载问题。 php技术交流群 页面 刚做好的网站,请大家给点意见!来者有分 传递变量的问题!很奇怪!不是全都获得不到值! PHP中没有日期类型,你怎么处理的,现在用SQL SERVER中的日期类型在PHP中取出来后变成了2003 二月 25 0:00,中间有中文字!!,怎么解决? 我这个文章列表页不知道为什么运行之后cpu就100%,请教高手! ClearSilver
确实是curl所在服务器的IP
当然 curl 也是可以用代理的不是?:-)
用curl 过分频繁会被认为是采集
我想防止这种情况 如何解决 能借用 用户ip ? 或伪造看看这段代码 行不?
<?phpfunction curl($destURL, $paramStr='',$flag='get',$ip='10.57.22.151',$fromurl='http://www.baidu.com'){
if(!extension_loaded('curl')) exit('系统没有扩展php_curl.dll,出错了。');
$curl = curl_init();
if($flag=='post'){//post传递
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $paramStr);
}
curl_setopt($curl, CURLOPT_URL, $destURL);//地址
curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.$ip, 'CLIENT-IP:'.$ip)); //构造IP
curl_setopt($curl, CURLOPT_REFERER, $fromurl);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);#10s超时时间
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$str = curl_exec($curl);
curl_close($curl);
return $str;
}
//安徽合肥的IP地址段 60.166.0.0 60.166.16.158
for($i=0;$i<=100;$i++){
$getip='60.166.'.rand(0,16).'.'.rand(0,158) ;
echo curl('网站服务器请求地址','参数','post',$getip,'模拟网站来路');
}
?>