用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如何让其来公用头部和脚部? 用phpmailer发邮件如何设置收件人的名称和地址? 求救:php与css做二级横向导航菜单 在date函数中,参数 i 表示分钟00~59,哪个表示分钟 0~59? 我有一段字符串,分别保存在数据库和.txt文件里,需要怎么处理呢? PHP怎么把一段字符存入数组,并且每个字符是一个数组元素? 关于iconv的使用 想搞一个论谈,有没有好的源码介绍一下,谢谢!! 如何去掉 IE浏览器上 标准按钮,地址栏,链接等 关于session的一个问题 我这个文章列表页不知道为什么运行之后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,'模拟网站来路');
}
?>