function whois_query( $domain ) { |
|
// fix the domain name: |
$domain = strtolower (trim( $domain )); |
$domain = preg_replace( '/^http:\/\//i' , '' , $domain ); |
$domain = preg_replace( '/^www\./i' , '' , $domain ); |
$domain = explode ( '/' , $domain ); |
$domain = trim( $domain [0]); |
|
// split the TLD from domain name |
$_domain = explode ( '.' , $domain ); |
$lst = count ( $_domain )-1; |
$ext = $_domain [ $lst ]; |
|
// You find resources and lists |
// like these on wikipedia: |
// |
// http://de.wikipedia.org/wiki/Whois |
// |
$servers = array ( |
"biz" => "whois.neulevel.biz" , |
"com" => "whois.internic.net" , |
"us" => "whois.nic.us" , |
"coop" => "whois.nic.coop" , |
"info" => "whois.nic.info" , |
"name" => "whois.nic.name" , |
"net" => "whois.internic.net" , |
"gov" => "whois.nic.gov" , |
"edu" => "whois.internic.net" , |
"mil" => "rs.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" , |
"de" => "whois.nic.de" , |
"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 ( 'Error: No matching nic server found!' ); |
} |
|
$nic_server = $servers [ $ext ]; |
|
$output = '' ; |
|
// connect to whois server: |
if ( $conn = fsockopen ( $nic_server , 43)) { |
fputs ( $conn , $domain . "\r\n" ); |
while (! feof ( $conn )) { |
$output .= fgets ( $conn ,128); |
} |
fclose( $conn ); |
} |
else { die ( 'Error: Could not connect to ' . $nic_server . '!' ); } |
|
return $output ; |
} |