<?php
 
class whois_search {
 
var $mappa_estensione_server = array (
 
      "it" => "whois.nic.it",
 
      "com" => "whois.internic.net",
 
      "net"  => "whois.internic.net",
 
      "org"  => "whois.publicinterestregistry.net",
 
      "info" => "whois.afilias.info",
 
      "biz"  => "whois.neulevel.biz",
 
      "eu"  => "whois.eu",
 
      "name"  => "whois.nic.name",
 
      "mobi"  => "whois.dotmobiregistry.net",
 
      "me" => "whois.meregistry.net",
 
      "tel" => "whois.nic.tel",
 
      "de" => "whois.denic.de",
 
      "fr" =>"whois.nic.fr",
 
      "es" =>"whois.ripe.net",
 
      "pl" =>"whois.dns.pl",
 
      "uk"=> "whois.nic.uk",
 
      "in"=>"whois.inregistry.net",
 
      "asia"=>"whois.nic.asia"
 
  );
 
   var $cercaRisposta = array (
 
      "it" => "available",
 
      "com" => "no match",
 
      "net"  => "no match",
 
      "org"  => "not found",
 
      "info" => "not found",
 
      "biz"  => "not found",
 
      "eu"  => "AVAILABLE",
 
      "name"  => "no match",
 
      "mobi"  => "not found",
 
      "me" => "not found",
 
      "in" => "not found",
 
      "tel" => "not found",
 
      "de" => "status: free",
 
      "fr" =>"no entries found",
 
      "es" =>"no entries found",
 
      "pl" =>"no information available",
 
      "uk"=> "no match for",
 
      "asia"=>"not found"
 
  );
 
 function do_whois($dominio2,$estensioni) {
 
  $doppia=false;
 
  $domini=array();
 
  for($i=0;$i<count($estensioni);$i++){
 
   /*if(isset($_POST['estensioneGeo'])){
 
   $doppia=true;
 
   //$dominio2.=".".$_POST['estensioneGeo'];
 
   }*/
 
    $dominio=$dominio2.".".$estensioni[$i];
 
    $dominio = strtolower(trim($dominio));
 
    $pos_punto = strrpos($dominio, ".");
 
    if (!$pos_punto) {
 
      return "nome di dominio non valido";
 
    } else {
 
      if($doppia){
 
      
 
      }else{
 
        $estensione = substr($dominio, $pos_punto + 1);
 
        if (!array_key_exists($estensione,$this->mappa_estensione_server)) {
 
        return "estensione <b><i>.".$estensione."</i></b> non supportata";
 
        }
 
      }
 
    }
 
    $server = $this->mappa_estensione_server[$estensione];
 
    $puntatore_whois =  fsockopen($server, 43, $errno, $errstr, 30);
 
    $html_output = '';
 
    if (!$puntatore_whois) {
 
      $html_output = "$errstr ($errno)";
 
    } else {
 
       fputs($puntatore_whois, "$dominio\r\n");
 
       while (!feof($puntatore_whois)) {
 
         $html_output .= fread($puntatore_whois,128);
 
       }
 
       fclose ($puntatore_whois);
 
    }
 
    if($estensione!="eu")
 
    $html=strtolower($html_output);
 
    else
 
    $html=$html_output;
 
    if(strstr($html,$this->cercaRisposta[$estensione]))
 
     array_push($domini,array("dominio"=>$dominio2,"estensione"=>$estensioni[$i],"risultato"=>"ok","output"=>$html_output));
 
    else
 
     array_push($domini,array("dominio"=>$dominio2,"estensione"=>$estensioni[$i],"risultato"=>"ko","output"=>$html_output));
 
    }
 
    return $domini;
 
  }
 
  function print_allowed_extension () {
 
    $vettore_estensioni = array_keys($this->mappa_estensione_server);
 
    $estensioni_supportate = '';
 
    for ($i = 0; $i < count($vettore_estensioni); $i++) {
 
      $estensioni_supportate .= ' .'.$vettore_estensioni [$i].' ';
 
    }
 
    return $estensioni_supportate;
 
  }
 
}
 
 
 
 
$whois = new whois_search();
 
$appo=explode("-",$_POST['estensioni']);
 
unset($appo[count($appo)-1]);
 
echo json_encode($whois->do_whois($_POST['dominio'],$appo));
 
 
unset($whois);
 
?>
 
 
 
 
 |