php伪造ip访问一个网站,可以伪造百度蜘蛛ip

php教程7年前 (2018-11-01)18690

有些行业的站点做的非常隐蔽,哪怕是模拟百度蜘蛛UA也不能访问到真实的百度蜘蛛抓取结果,而且站点还禁止了百度快照的显示,如果想看到它在百度蜘蛛下的内容也是有些办法可以尝试的,比如伪造ip。可以用php的curl模块实现,上代码:

<?php
$headers = [ // 构造百度蜘蛛IP'
CLIENT-IP: 220.181.108.117',
'X-FORWARDED-FOR: 220.181.108.117',];
$UserAgent="Mozilla/5.0+(compatible;+Baiduspider/2.0)"; 
//构造百度蜘蛛UA
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.website.com/');//这里写要访问的站点
#curl_setopt($ch, CURLOPT_REFERER, 'http://www.baidu.com/'); // 构造来路
curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($ch, CURLOPT_HTTPHEADER , $headers);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_exec($ch);curl_close ($ch);
?>

把这个代码放到一个php文件里,然后执行这个php文件,就能看到你要访问的网址给你返回的内容。HTTP_CLIENT_IP 是服务器发送的HTTP头,这个参数值是可以随便修改的。

所以,需要明白一点:

如果服务器端用$_SERVER[‘HTTP_CLIENT_IP’]判断来访ip,那么这方法是可行的;

如果用$_SERVER[‘REMOTE_ADDR’]来判断来访ip,那么这方法就失效了。$_SERVER[‘REMOTE_ADDR’]获取的是真实的ip,是你的客户端跟你的服务器“握手”时候的IP。

补充知识:

php中的$_SERVER数组中以HTTP开头的值,都是由客户端(client)传递到服务端的,也就是说这一部分是可以进行伪造的,而$_SERVER[ “REMOTE_ADDR” ]是由服务器传递的,是不能进行伪造的。


标签: php伪造IP

“php伪造ip访问一个网站,可以伪造百度蜘蛛ip” 的相关文章

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。