成都网站建设设计

将想法与焦点和您一起共享

php爬取whois数据 php实现爬虫

网站上线二十多天,一直没有收录,请教大神

您这个情况很常见。被搜索引擎收录,首先得让搜索引擎的蜘蛛爬虫能够有通道爬到您的网站。如果没有这个入口,当然没有办法被收录。如下几个方法请尝试:

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的嘉鱼网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

1、每个搜索引擎都有手动提交网址收录的专用链接,进去提交您的网址即可。

①Google网站提交入口:

②必应网站提交入口:

③360网站提交入口:;a=index

④百度网站提交入口:

⑤搜狗网站提交入口:

2、去查询您网站网址的Whois信息,如去站长之家,查询whois信息,这样站长之家就会记录您的网址,进而搜索引擎就可以顺着站长之家怕到您的网址。

3、搜索引擎录入或者爬取您的网站是需要一定时间的,可能几天,也可能十天半个月的,您可以再过段时间再次进行查询。

php如何爬取天猫和淘宝商品数据

直接用Curl就行,具体爬取的数据可以穿参查看结果,方法不区分淘宝和天猫链接,但是前提是必须是PC端链接,另外正则写的不规范,所以可以自己重写正则来匹配数据。

用PHP实现标准的IP Whois查询

由于Internet的历史原因,apin负责整个网络IP的整体规划以及北美区

还有部分非洲地区的IP分配管理,与此相应的是,whois.apin点虐 是IP

whois的root

server,标准的IP

whois查询方法是,首先向whois.apin点虐 查询某个IP属于哪个大区,然后再向该区的whois

服务器查询此IP的whois详细信息。

目前负责

IPV4的大区

whois.arin点虐

美洲区

北美

whois.apnic点虐

亚太区

包括亚洲和澳大利亚

whois.ripe点虐

欧洲区

欧洲/中东(西亚)/北非

whois.lacnic点虐

拉美区

拉丁美洲和加勒比海区域

非洲网络的IP查询也在whois.arin点虐

向某个whois服务器提交whois查询的过程

打开一个到whois服务器的43端口的连接,然后发送要查询的域名

和一个回车换行。如果要查询多个域名,请用空格分开然后从sokect中读取结果。最后服务器将自动断开连接。

用PHP实现

1.验证IP(用

ip2long代替

ereg)

2.向

whois.arin点虐 查询,如果数据库中没有相关信息,会给出一个Referral

Server的URL,格式如下

ReferralServer:

然后根据此信息,继续查询

代码如下

whoisip.php

?php

include_once

"lang.inc.php";

$IP

=

isset($_GET['ip'])?$_GET['ip']:'blank';

if

(-1

===

ip2long($ip))

die(str_replace('%IP%',

$IP,

$Text['ip_invalid']));

echo

GetWhois($IP);

function

GetWhois($IP)

{

global

$Text;

$rootwhois

=

'whois.arin点虐 ';

$buffer

=

str_replace('%SERVER%',

$rootwhois,

$Text['sock_connect']);

$buffer1

=

ReadSocket($rootwhois,$IP);

if

($buffer1

!==

'')

{

$whois

=

SubStrByTag("ReferralServer:

whois://","\n",$buffer1);

//remove

port

number

":43";

if

(

($pos=strpos($whois,":"))

!==

FALSE)

{

$whois

=

substr($whois,

0,$pos);

}

if

($whois

!==

'')

{

$buffer

.=

str_replace('%SERVER%',

$whois,

$Text['sock_connect']);

$buffer

.=

ReadSocket($whois,$IP);

}

else

{

$buffer

.=

$buffer1;

}

}

return

nl2br($buffer);

}

function

SubStrByTag($firstTag,$secondTag,$longStr)

{

$firstPos

=

strpos

($longStr,$firstTag);

$ret

=

'';

if

($firstPos

!==

FALSE)

{

$secondPos

=

strpos

($longStr,$secondTag,$firstPos);

if

($secondPos

!==

FALSE)

{

$firstPos

+=

strlen($firstTag);

$ret

=

substr($longStr,$firstPos,$secondPos-$firstPos);

}

}

return

$ret;

}

function

ReadSocket($whois,$ip)

{

global

$Text;

$buffer

=

'';

if

(!$sock

=

fsockopen(

$whois,

43,

$errNum,

$errStr,

20))

{

$buffer

=

str_replace('%SERVER%',

$whois,

$Text['sock_fail']);

}

else

{

fputs($sock,"$ip\n");

//$buffer

=

fread($sock,

8192);

while(!feof($sock))

$buffer.=fgets($sock,

8192);

fclose($sock);

}

return

$buffer;

}

?

语言文件:

lang.inc.php

?php

$Text

=

Array(

'ip_invalid'='I

want

to

get

a

valid

IP,

but

it

is

[%IP%].',

'sock_connect'='Ask

%SERVER%

...

',

'sock_fail'='Cannot

connect

to

the

host:%SERVER%'

);

?

其他有名的whois服务器

1.Tucows

(whois.opensrs点虐 )

一次只能一个连接

dnsstuff就是查询的它

2.BulkRegister

(whois.bulkregiter点虐 )

小心它临时封IP,如果大量连接的话

3.Network

Solutions

(whois点虐 worksolutions点抗 )

一天只能查1000次

4.Go

Daddy

(whois.godaddy点抗 )

5.whois.abuse点虐

php提取json数组里面的值怎么提?

先把获取的内容打印出来 ,看看是不是正常返回的数据

$filename = "";

$content = file_get_contents($filename);

$json = @json_decode($content );

if($json){

$city=$json-city;

}else{

echo "json解析失败:".$content;

}

也可以根据你的框架功能,写成日志,方便出错时随时检查

另外 ,json_decode 可以接收一个参数来确定解析成对象还是数组

$content = '{"ip":"120.239.177.231","pro":"广东省","proCode":"440000","city":"中山市","cityCode":"442000","region":"","regionCode":"0","addr":"广东省中山市 移通","regionNames":"","err":""}';

$json = json_decode($content,true);

echo $json['city'];

参考文档:PHP json_decode


本文题目:php爬取whois数据 php实现爬虫
URL地址:http://chengdu.cdxwcx.cn/article/ddesisd.html