<?
//本例用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>

解决方案 »

  1.   

    谢谢各位jxyuhua(一塌糊涂) 
    文件报这个错误是怎么回事?
    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
      

  2.   

    我给你一个,全能的
    <?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");  
    ?>
      

  3.   

    jxyuhua(一塌糊涂) 的就是最好的方法了,我就不发了。