Продолжение whois.php 
 
 var $TLD;  
var $RAWINFO;  
var $DNSINFO;  
//обращение к WHOIS серверу  
function connect ($server)  
{  
 while($this->RETRY <= $this->MAX_RETRIES)  
 {  
  $ptr=fsockopen($server, $this->port);   
  if($ptr>0)  
  {  
   $this->ERROR=0;  
   return($ptr);  
  }else  
   {  
    $this->ERROR++;  
    $this->RETRY++;  
    sleep($this->SLEEP_VAL);  
   }  
 }  
}  
 
//Получает данные и загружает их в массив  
function rawlookup ($query)  
{  
 $array=array();  
 $this->FOUND=1;  
 $query=strtolower(trim($query));  
 if(strlen($query)<=2)  
 {  
  $this->ERROR=1;  
  return($array);  
 }  
 //устанавливаем сервер по умолчанию  
 $server=$this->DEFAULT_SERVER;  
 //пытаемся переназначить его  
 if($this->QUERY_TYPE=="domain")  
 {  
  ereg(".+\.(.+)\.{0,1}",$query,$backrefs);  
  if(isset($backrefs[1]) && strlen($backrefs[1])>0 && isset($this->SERVER[$backrefs[1]]))  
  {  
   $this->TLD=$backrefs[1];  
   $server=$this->SERVER[$this->TLD];  
  }  
 
 }  
 $ptr=$this->connect($server);  
 if($ptr)  
 {  
  $query .= "\n";  
  fputs($ptr, $query);  
  $i=0;  
  while(!feof($ptr))  
  {  
   $array[$i]=fgets($ptr,$this->MAXLEN);  
   $this->DATA_COUNT+=strlen(trim($array[$i]));  
   if(eregi("No match for", $array[$i]) || eregi("Not found", $array[$i]) || eregi("No entries found for", $array[$i]))  
   {  
    $this->FOUND=0;  
    break;  
   }  
   if(eregi("WHOIS database is down",$array[$i]) || eregi("Please wait a while and try again",$array[$i]))  
   {  
    $this->ERROR=1;  
    $this->FOUND=0;  
    break;  
   }  
   $i++;  
  }  
  fclose($ptr);  
  if($this->DATA_COUNT>$this->DATA_MIN && $this->ERROR==0 && $this->FOUND==1)  
  {  
   return($array);  
  }  
 }  
 //в случае ошибки возвращаем пустой массив  
 return (array());  
}  
 
 
// парсинг результатов  
function parsezone ($array)  
{  
 $result=array();  
 if(!isset($array) || !is_array($array) || count($array)<=3)  
 {  
  $this->FOUND=0;  
  return $result;  
 }  
 $cnt=count($array);  
 $rescnt=0;  
 $i=0;  
 $isinfo=true;  
 while($i<$cnt)  
 {  
  if(!$isinfo)  
  {  
   $str=trim($array[$i]);  
   $result[$rescnt]=$str;  
   //Извлекаем настройки DNS  
   if(eregi("NAME SERVER", $str) || eregi("NSERVER", $str))  
   {  
    $str=trim(substr($str, strpos($str, ":")+1));  
    if($pos=strpos($str, " "))  
    {  
     $str=substr($str, 0, $pos);  
    }  
    if(substr($str, -1)==".")  
    {  
     $str=substr($str, 0, -1);  
    }  
    $this->DNS_NAME[]=strtolower($str);  
   }  
   $rescnt++;  
  }  
  if(trim($array[$i])=="" && $isinfo)  
  {  
   $isinfo=false;  
  }  
  $i++;  
 }  
 return $result;  
}  
 
function zonelookup ($query)  
{  
  $query=trim($query);  
  $this->RAWINFO=$this->rawlookup($query);  
  if($this->FOUND)  
  {  
     $this->RAWINFO=$this->parsezone($this->RAWINFO);  
  }  
  if($this->FOUND==0)  
  {  
   return;  
  }  
  if($this->dns_lookup($query))  
  {  
   $this->IP=gethostbyname($query);  
   $this->build_dns($query);  
  }  
}  
 
function build_dns($query)  
{  
 $cnt=0;  
// $temp=dns_get_record($query, "NS");  
 foreach($this->DNS_NAME AS $dns)  
 {  
  $this->DNSINFO[$cnt]="NS: ".$dns."\tinternet address = ".gethostbyname($dns);  
  $cnt++;  
 }  
 if(getmxrr($query, $temp))   
 {  
  foreach($temp AS $dns)  
  {  
   $this->DNSINFO[$cnt]="MX: ".$dns."\tinternet address = ".gethostbyname($dns);  
   $cnt++;  
  }  
 }  
 
}  
function dns_lookup($query)  
{  
  return checkdnsrr($query,"ANY");  
}  
 
 
};  
 
?> 
		 
		
		
		
		
		
		
			
				__________________ 
				Верные слова неизящны, изящные слова неверны
Хостинг
			 
		
		
		
		
		
	
	 |