Zum Inhalt springen

WHOIS Abfrage mittels PHP

Die WHOIS Abfrage von Domains mittels PHP ist eigentlich keine große Sache. Folgender Code erspart insbesondere die Arbeit des zusammensuchens der WHOIS Server der entsprechenden Registrierstellen. Zu beachten ist jedoch, dass einige Registrierstellen (z.B. seit einigen Jahren auch die Denic eG für .de Domains) bei derartigen Abfragen keine Inhaberdaten, sondern nur den Domainstatus herausgeben.

function whois_query($domain) {

//Domain auf sich selbst begrenzen
$domain = preg_replace(‚/^http:\/\//i‘, “, $domain);
$domain = preg_replace(‚/^www\./i‘, “, $domain);
$domain = explode(‚/‘, $domain);
$domain = trim($domain[0]);

//TLD extrahieren
$_domain = explode(‚.‘, $domain);
$lst = count($_domain)-1;
$tld= $_domain[$lst];

$servers = array(

„de“ => „whois.nic.de“,
„biz“ => „whois.neulevel.biz“,
„com“ => „whois.internic.net“,
„us“ => „whois.nic.us“,
„info“ => „whois.nic.info“,
„name“ => „whois.nic.name“,
„net“ => „whois.internic.net“,
„biz“ => „whois.neulevel.biz“,
„edu“ => „whois.internic.net“,
„int“ => „whois.iana.org“,
„ac“ => „whois.nic.ac“,
„ae“ => „whois.uaenic.ae“,
„at“ => „whois.ripe.net“,
„au“ => „whois.aunic.net“,
„be“ => „whois.dns.be“,
„bg“ => „whois.ripe.net“,
„br“ => „whois.registro.br“,
„bz“ => „whois.belizenic.bz“,
„ca“ => „whois.cira.ca“,
„cc“ => „whois.nic.cc“,
„ch“ => „whois.nic.ch“,
„cl“ => „whois.nic.cl“,
„cn“ => „whois.cnnic.net.cn“,
„cz“ => „whois.nic.cz“,
„fr“ => „whois.nic.fr“,
„hu“ => „whois.nic.hu“,
„ie“ => „whois.domainregistry.ie“,
„il“ => „whois.isoc.org.il“,
„in“ => „whois.ncst.ernet.in“,
„ir“ => „whois.nic.ir“,
„mc“ => „whois.ripe.net“,
„to“ => „whois.tonic.to“,
„tv“ => „whois.tv“,
„ru“ => „whois.ripn.net“,
„org“ => „whois.pir.org“,
„aero“ => „whois.information.aero“,
„nl“ => „whois.domain-registry.nl“
);

if (!isset($servers[$ext])){
die(‚Fehler: Kein WHOIS Server zu Domain gefunden‘);
}

$whois_server = $servers[$tld];

$output = “;

// connect to whois server:
if ($conn = fsockopen ($whois_server, 43)) {
fputs($conn, $domain.“\r\n“);
while(!feof($conn)) {
$output .= fgets($conn,128);
}
fclose($conn);
}
else { die(‚Fehler: Verbindung fehlgeschlagen zu ‚ . $nic_server ); }

return $output;
}