<?
//本例用PHP4实现顶级域名查询
if ($domain) {
if ($domain) {
//连接到internic域名服务器
$fp = fsockopen( "rs.internic.net", 43, &$errno, &$errstr, 100);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp, "$domain\r\n");
while(!feof($fp)) {
$buf = fgets($fp,128);
if (ereg( "Whois Server:", $buf)) {
$server = str_replace( "Whois Server: ", "", $buf);
$server = trim($server);
}
}
fclose($fp);
} if ($server) {
echo "<B>$domain 的注册服务器是 $server:</B><BR>";
echo "<PRE>";
$fp = fsockopen($server, 43, &$errno, &$errstr, 10);
if(!$fp) {
echo "不能连接到服务器 $server 的43端口.\n";
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp, "$domain\r\n");
while(!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
} else {
echo( "<b>$domain 没有注册。</b><BR>");
}
echo ( "</PRE><BR>");
}}
?><FORM ACTION="whois.php" METHOD="post">
只能查询.com,.net和.org的域名<br>
输入域名:<INPUT TYPE="text" NAME="domain" SIZE="30" MAXLENGTH="100">
<INPUT TYPE=submit VALUE="查 询">
</FORM>
//本例用PHP4实现顶级域名查询
if ($domain) {
if ($domain) {
//连接到internic域名服务器
$fp = fsockopen( "rs.internic.net", 43, &$errno, &$errstr, 100);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp, "$domain\r\n");
while(!feof($fp)) {
$buf = fgets($fp,128);
if (ereg( "Whois Server:", $buf)) {
$server = str_replace( "Whois Server: ", "", $buf);
$server = trim($server);
}
}
fclose($fp);
} if ($server) {
echo "<B>$domain 的注册服务器是 $server:</B><BR>";
echo "<PRE>";
$fp = fsockopen($server, 43, &$errno, &$errstr, 10);
if(!$fp) {
echo "不能连接到服务器 $server 的43端口.\n";
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp, "$domain\r\n");
while(!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
} else {
echo( "<b>$domain 没有注册。</b><BR>");
}
echo ( "</PRE><BR>");
}}
?><FORM ACTION="whois.php" METHOD="post">
只能查询.com,.net和.org的域名<br>
输入域名:<INPUT TYPE="text" NAME="domain" SIZE="30" MAXLENGTH="100">
<INPUT TYPE=submit VALUE="查 询">
</FORM>
文件报这个错误是怎么回事?
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /usr/local/apache/htdocs/test/whois.php on line 6
<?php
// 网络技术主管座右铭:三人行,其必有我师焉。http://www.ctohome.com
// 这个代码可以是说是非常的SMART,我改动了小小部分使它更容易用。 $moreinfolist = array( // 储存WHOIS查询主机的连接方法
'at' => 'www.ripe.net/cgi-bin/whois?query=',
'au' => 'www.aunic.net/cgi-bin/whois.aunic?',
'bm' => 'www.bermudanic.bm/cgi-bin/BermudaNIC/rwhois_query_get.pl?query_text=',
'ch' => 'www.switch.ch/cgi-bin/domain/search_domain?keyword=',
'com'=> 'www.networksolutions.com/cgi-bin/whois/whois/?STRING=',
'cz' => 'www.ripe.net/cgi-bin/whois?query=',
'de' => 'www.ripe.net/cgi-bin/whois?query=',
'dk' => 'www.ripe.net/cgi-bin/whois?query=',
'edu'=> 'www.networksolutions.com/cgi-bin/whois/whois/?STRING=',
'es' => 'www.nic.es/whois/index.php?type=Dominios&key=',
'fi' => 'www.ripe.net/cgi-bin/whois?query=',
'fo' => 'www.ripe.net/cgi-bin/whois?query=',
'fr' => 'harmonic.nic.fr/cgi-bin/HarmoNIC.pl?Annu_Suffixe=&Annu_Action=Rechercher&Annu_Automaton_State=17&Annu_Motif=',
'gl' => 'www.ripe.net/cgi-bin/whois?query=',
'gm' => 'www.ripe.net/cgi-bin/whois?query=',
'gov'=> 'www.nic.gov/cgi-bin/whois?s=nic.gov',
'gr' => 'www.ripe.net/cgi-bin/whois?query=',
'hu' => 'www.ripe.net/cgi-bin/whois?query=',
'id' => 'whois.idnic.net.id/cgi-bin/whois-cgi?user=',
'ie' => 'www.ripe.net/cgi-bin/whois?query=',
'il' => 'www.ripe.net/cgi-bin/whois?query=',
'is' => 'www.ripe.net/cgi-bin/whois?query=',
'it' => 'www.ripe.net/cgi-bin/whois?query=',
'jp' => 'www.nic.ad.jp/cgi-bin/whois_gw?lang=/e&type=DOM&rule=ex&key=',
'lb' => 'www.aub.edu.lb/cgi-bin/lbdr.pl?cn=',
'li' => 'www.switch.ch/cgi-bin/domain/search_domain?keyword=',
'lt' => 'www.ripe.net/cgi-bin/whois?query=',
'lv' => 'www.ripe.net/cgi-bin/whois?query=',
'mc' => 'www.ripe.net/cgi-bin/whois?query=',
'mil'=> 'www.nic.mil/cgi-bin/whois?stype=Domains&ctype=reg&keyword=',
'ms' => 'www.adamsnames.tc/whois/?seen=y&domain=',
'mx' => 'www.nic.mx/cgi/whois?',
'net'=> 'www.networksolutions.com/cgi-bin/whois/whois/?STRING=',
'no' => 'www.ripe.net/cgi-bin/whois?query=',
'nz' => 'www.domainz.net.nz/facility/namesearch/Result.asp?prmMode=Search&DomainName=',
'org'=> 'www.networksolutions.com/cgi-bin/whois/whois/?STRING=',
'pt' => 'www.ripe.net/cgi-bin/whois?query=',
'ro' => 'whois.rotld.ro/cgi-bin/whois?whois=',
'sk' => 'www.ripe.net/cgi-bin/whois?query=',
'sm' => 'www.ripe.net/cgi-bin/whois?query=',
'tc' => 'www.adamsnames.tc/whois/?seen=y&domain=',
'tf' => 'www.adamsnames.tc/whois/?seen=y&domain=',
'th' => 'www.thnic.net/cgi-bin/whois.pl?server=whois.thnic.net&string=',
'tj' => 'www.nic.tj/whois.cgi?domain',
'tr' => 'whois.cc.metu.edu.tr/whois/wwwwhois?Whois=',
'uk' => 'www.nic.uk/cgi-bin/whois.cgi?query=',
'va' => 'www.ripe.net/cgi-bin/whois?query=',
'vg' => 'www.adamsnames.tc/whois/?seen=y&domain='
); # where can we get more info?
$moreinfo = FALSE;
for ( reset($moreinfolist) ; list($tail, $moreinfoname) = each($moreinfolist) ; )
if ( eregi("\\.$tail\$", $address) ) { // 比较域名后缀
$moreinfo = $moreinfoname; // 遇到匹配项就立即结束循环
break;
} if ( $moreinfo && $address) { // 跳转到WHOIS主机
header('Location: http://'. $moreinfo . $address);
exit();
}
else {
echo "<form action=$PHP_SELF method=post>
请输入域名:<input name=address>
<input type=submit></form>";
} ?> <html> <head>
<title>whois tool</title>
</head> <body> <p>网络技术主管汉化解释</a>.</p> <hr />
<address>http://www.ctohome.com</address> </body> </html> <?php
highlight_file("whois.php");
?>