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();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.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> <? } ?>