日期:2014-01-14  浏览次数:20429 次

1、简化了代码。(其实就是去掉了一些用不着的变量的定义)
2、针对从INTERNIC检索到的信息过于简单,根据INTERNIC反馈的信息中的WHOIS SERVER进行进一步查询。比如,YAHOO在whois.networksolutions.com上有更详细的信息。

<?
class whois {  

var $use_cache = 1;  
var $FROM_CACHE=0;  
var $cache_dir = "./";            // 根据你的系统自己设置

var $port = 43;  
var $MAXLEN = 100;  

// 如果你想在连接失败后自动重试,
// 设置重试次数 $MAX_RETRIES
var $MAX_RETRIES = 0;  
var $SLEEP_VAL = 1;  
var $RETRY = 0;  

var $FOUND = 0;                // 查询没有结果,次值为0
var $ERROR = 0;                // 查询过程中的出错次数
var $DATA_MIN = 8;             // 我们至少应该获得8个字节的数据
var $DATA_COUNT = 0;  

var $WHOIS_SERVER;
var $NEW_WHOIS;
var $FURTHER_INFO = 0;


// 打开和WHOIS SERVER的SOCKET连接
// 默认的是 whois.internic.net
function connect ($server) {
    $this->RETRY=0;
        while($this->RETRY <= $this->MAX_RETRIES):
                $ptr = fsockopen($server, $this->port);  
                if($ptr>0):  
                        $this->ERROR=0; // just in case we're on a retry  
                        return($ptr);  
                else:  
                        $this->ERROR++;  
                        $this->RETRY++;  
                        sleep($this->SLEEP_VAL);  
                endif;  
        endwhile;  
        }  

// 获取简单的查询结果,并以行为单位,放入数组
// 国际域名查询
function rawlookup ($query, $server) {
    
    if(!$query):  
            return( "");  
    endif;

    $ptr=$this->connect($server);
    
    if($ptr):  
            if(!ereg($query, "\n$")):  
                    $query .= "\n";  
            endif;  
            fputs($ptr, "$query");  
         &