一个PHP Whois域名检查函数代码
01
02function whois_query($domain) {
03 $domain = strtolower(trim($domain));
04 $domain = preg_replace('/^http:\/\//i','',$domain);
05 $domain = preg_replace('/^www\./i','',$domain);
06 $domain = explode('/',$domain);
07 $domain = trim($domain[0]);
08 // 切割域名
09 $_domain = explode('.',$domain);
10 $lst = count($_domain)-1;
11 $ext = $_domain[$lst];
12 //定义不同域名后缀所需要连接的查询服务器地址
13 $servers = array(
14 "biz" => "whois.neulevel.biz",
15 "com" => "whois.internic.net",
16 "us" => "whois.nic.us",
17 "coop" => "whois.nic.coop",
18 "info" => "whois.nic.info",
19 "name" => "whois.nic.name",
20 "net" => "whois.internic.net",
21 "gov" => "whois.nic.gov",
22 "edu" => "whois.internic.net",
23 "mil" => "rs.internic.net",
24 "int" => "whois.iana.org",
25 "ac" => "whois.nic.ac",
26 "ae" => "whois.uaenic.ae",
27 "at" => "whois.ripe.net",
28 "au" => "whois.aunic.net",
29 "be" => "whois.dns.be",
30 "bg" => "whois.ripe.net",
31 "br" => "whois.registro.br",
32 "bz" => "whois.belizenic.bz",
33 "ca" => "whois.cira.ca",
34 "cc" => "whois.nic.cc",
35 "ch" => "whois.nic.ch",
36 "cl" => "whois.nic.cl",
37 "cn" => "whois.cnnic.net.cn",
38 "cz" => "whois.nic.cz",
39 "de" => "whois.nic.de",
40 "fr" => "whois.nic.fr",
41 "hu" => "whois.nic.hu",
42 "ie" => "whois.domainregistry.ie",
43 "il" => "whois.isoc.org.il",
44 "in" => "whois.ncst.ernet.in",
45 "ir" => "whois.nic.ir",
46 "mc" => "whois.ripe.net",
47 "to" => "whois.tonic.to",
48 "tv" => "whois.tv",
49 "ru" => "whois.ripn.net",
50 "org" => "whois.pir.org",
51 "aero" => "whois.information.aero",
52 "nl" => "whois.domain-registry.nl"
53 );
54 if (!isset($servers[$ext])){
55 die('Error: 没有找到匹配的服务器!');
56 }
57 $nic_server = $servers[$ext];
58 $output = '';
59 //连接域名服务器:
60 if ($conn = fsockopen ($nic_server, 43)) {
61 fputs($conn, $domain."\r\n");
62 while(!feof($conn)) {
63 $output .= fgets($conn,128);
64 }
65 fclose($conn);
66 }
67 else { die('Error: 不能连接到: ' . $nic_server . '!'); }
68 return $output;
69}
70?>
函数调用后,将直接返回结果。