Un semplice Whois in PHP

30/05/2007

Un Whois è un'applicazione che permette di reperire tutte le informazioni di pubblico dominio riguardanti.. un dominio e per contro anche di sapere se un nome di dominio è al momento disponibile per la registrazioneo meno.

Vi sono tantissime varianti di Whois realizzate nei linguaggi più diversi. Noi proporremo al lettore un Whois realizzato interamente in PHP che ci permetterà di controllare nomi di dominio dotati delle estensioni più diffuse come it, com, org e net.

Riportiamo di seguito il codice del nostro piccolo script, subito dopo ne commenteremo le parti più importanti:

<?php
class get_Whois {

var $server_array = array (
"it" => "whois.nic.it",
"com" => "rs.internic.net",

"net" => "rs.internic.net",
"org" => "whois.pir.org",
);

function show($domain_name) {
$domain_name = strtolower(trim($domain_name));
$dot = strrpos($domain_name, ".");

if (!$dot) {
 return "Formato non corretto per un nome di name.";
 } else {
 $ext = substr($domain_name, $dot + 1);
  if (!array_key_exists($ext,$this->server_array)) {
  return "Impossibile risolvere l'estensione ".$ext;
  }
}

$server = $this->server_array[$ext];
$check_whois = fsockopen($server, 43, $errno, $errstr, 30);

$result = '';
 if (!$check_whois) {
  $result = "$errstr ($errno)";
  } else {
  fputs($check_whois, "$domain_name\r\n");
  $result .= "<pre>\r\n";
   while (!feof($check_whois)) {
   $result .= fread($check_whois,128);
   }
  $result .= "</pre>";
 fclose ($check_whois);
 }
return $result;
}

function extension () {
 $extension_array = array_keys($this->server_array);
 $extension_alw = '';
  for ($i = 0; $i < count($extension_array); $i++) {
  $extension_alw .= ' '.$extension_array [$i];
  }
 return $extension_alw;
 }
}

$whois = new get_Whois();

if (isset($_POST['name'])) { echo 'Dominio ricercato: '.$_POST['name']; echo $whois->show($_POST['name']); unset($whois); } else { ?> <form method=post action="<? echo $_SERVER['PHP_SELF']; ?>"> Nome dominio: <input type="text" name="name"> <br> Estensioni accettate: <? echo $whois->extension() ?> <br> <input type="submit" value="Whois"> </form> <? } ?>

Abbiamo quindi creato una classe all'interno della quale è stato introdotto un array() contenente le estensioni interessate e gli indirizzi dei server attraverso i quali operare le ricerche.

La prima operazione svolta dallo script è quella relativa alla validazione dell'estensione passata come parametro: viene utilizzato il punto come discriminante tra nome ed estensione, quest'ultima deve essere presente nell'array() introddotto all'inizio o il parametro sarà considerato non valido.

Il passaggio più importante riguarda la restituzione dei risultati della ricerca che si ottengono tramite l'istanza della classe che applicherà la funzione in grado di raccogliere i parametro, passarlo ai server Whois e restituire di conseguenza il loro output completo di informazioni.

Di default, in mancanza dell'invio di un paramero, verrà visualizzato il form con il quale effettuare la ricerca.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.
 
Stampa :: Torna alla Home