PX : code

A Whois that checks multiple Who is DBs by joe lumbroso
Download this code


<?php

    
//  created by joe lumbroso 
    //  see some other good php3 scripts 
    //  goto http://www.dtheatre.com/scripts

if (ereg"(\.)"$name)) {
   
$namo split("\."$name);
   
$name $namo[0];
   
$xten $namo[1]; 
}
$domain[] = ".com";
$host[]   = "whois.internic.net";
$domain[] = ".com";              
$host[]   = "whois.register.com";
$domain[] = ".org";
$host[]   = "whois.internic.net";
$domain[] = ".org";
$host[]   = "whois.register.com";
$domain[] = ".net";
$host[]   = "whois.internic.net";
$domain[] = ".net";
$host[]   = "whois.register.com";
$domain[] = ".cc";
$host[]   = "whois.nic.cc";

$extion[] = "com";
$extion[] = "org";
$extion[] = "net";
$extion[] = "cc";


function 
checkRegistered($res) {
   
$rval=true;
   if(
gettype($res)=="array") {
      for(
$i=0;$i<count($res[0]);$i++) {
         if(empty(
$res[0][$i]))
            
$res[0][$i] = "";
         if(
strstr($res[0][$i],"No match for")!=false) {
            
$rval=false;
         }
      }
   }
   return 
$rval;
}

function 
printWhois($res) {
   if(
gettype($res)=="array") {
      for(
$i=0;$i<count($res[0]);$i++) {
         if (
$res[0][$i] == "Registrant:") {
            
$wolack 1;
         }
         if (
$wolack == 1) {
            print 
$res[0][$i]."<br>";
         }
      }
   }
}


function 
whois($domainName$server) {
   global 
$bad$whoisResult$whoisQuery;
   
$whoisQuery "whois -h $server $domainName";
   
exec($whoisQuery$whoisResult[], $whoisReturnValue);
   
$reg checkRegistered($whoisResult);
   if(
$reg) {
      
$bad 1;
   } else  {
      
$good 1;
   }
}

function 
wait_msg() {
   echo 
"   Please be patient, this can take a few moments...\n<br><br>";
   
flush();
}

if(empty(
$name))
$name "";
$name strtolower($name);
$base "";
$dom  "";

if(
$name<>"") {
   if(
strcmp("www.",substr($name,0,4))==0)
      
$name substr($name,4,strlen($name)-4);
   
$base strtok($name,".");
   if(
$base) {
      
$tok strtok(".");
      while(
$tok) {
         
$dom .= "." $tok;
         
$tok strtok(".");
      }
   }
}

if(
count($domain)==count($host)) {
   if(
$base<>"") {
      
wait_msg();
      if(
$dom=="") {
         for(
$i=0;$i<count($domain);$i++) {
         
whois($base.$domain[$i],$host[$i]);
      }
   } else {
      for(
$i=0;$i<count($domain);$i++) {
         if(
$domain[$i]==$dom)
            
whois($base.$domain[$i],$host[$i]);
         }
      }
   } else {
      echo 
"You need to enter a domain or basename<br>\n";
   }
} else {
   echo 
"Error in script: Hosts count doesn't match domain count<br>\n";
}
?><b><?
if ($bad) {
   echo "$name.$xten is not available";
   ?> &nbsp; <a href="whoisthing.php3?<? echo $name.".".$xten; ?>"><i>whois</i> record</a> / <a href="http://<? echo $name.".".$xten; ?>">Web site</a> <?
   for($r=0;$r<count($extion);$r++) {
      if ($extion[$r] != "$xten") {
         print "<BR>$r: ".$extion[$r];
         for($i=0;$i<count($domain);$i++) {
            if($domain[$i]==$xten) {
               whois($base.$domain[$i],$host[$i]);
            }
         }
      }
   }
} else {
   echo "$name is available";
}
?></b>
<pre>
<?
printWhois($whoisResult);

/* demo html
<html>
<head>
<title>whois</title>
</head>
<body bgcolor="white">
<center><b><font face="Verdana, Arial, Helvetica, sans-serif" size="6">::WHOIS::</font></b></center>
<form action="whois.php3" method="post">
   <center>
   <table width="*" cellpadding="2" cellspacing="0" border="1">
    <tr> 
     <td colspan="2" width="61%" valign=top><input type=text name="name" size="30" maxlength="256"> &nbsp;
     <select name="xten">
      <option value="com">.com</option>
      <option value="net">.net</option>
      <option value="org">.org</option>
      <option value="cc">.cc</option>
     </select>
     <input type="submit" value="who is">
     </td>
    </tr>
   </table>
   </center>
</form>
</body>
</html>

*/

?>

Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.