package Net::DLookup;
=head1 NAME
Net::DLookup - Perform domain lookups on 2-letter and 3-letter TLDs
=head1 SYNOPSIS
use Net::DLookup;
# Initialize Net::DLookup object
my $dlu = Net::DLookup -> new;
# Replace domain definitions from a file
$dlu -> LoadTLD($file, 1);
# Add domain definitions from a file
$dlu -> LoadTLD($file, 0);
# Check domain name validity and assign it to the object
@errors = $dlu -> IsValid($domain);
# Return availability
@response = $dlu -> DoWhois(0);
# Return availability and registrar information
@response = $dlu -> DoWhois(1);
=head1 DESCRIPTION
Net::DLookup performs domain lookups for 2-letter and 3-letter top level domains. It also verifies the validity of
domain names by checking punctuation, length, metacharacters, etc..
Information for currently recognized top level domains is included within the module. This list may be replaced or
added to by calling $dlu->LoadTLD().
With the advent of new registrars for 3-letter top level domains, it's become difficult to get the
whois output from a single domain lookup, unless you know what registration agency to look at. Net::DLookup solves
this problem by checking Internic's database first and then performing a second query to the respective registrar
for full whois output.
=head1 USAGE
These functions must be used in order:
Of course:
use Net::DLookup;
Create an object that contains the default top level domains.
my $dlu = Net::DLookup -> new;
Validate domain name ($domaintocheck) and associate it with the object.
This must be the full domain name, such as yourdomain.com.
my @errors = $dlu -> IsValid($domaintocheck);
It checks for the following possible errors:
=over 4
=item Is 67 characters or less for 3-letter TLDs
=item Is not a 3rd level domain for 3-letter TLDs (me.yourdomain.com)
=item Is 26 characters or less for 2-letter TLDs
=item Is not a 4th level domain for 2-letter TLDs (me.yourdomain.co.uk)
=item Does not start or end with a non-alphanumeric character
=item Does not contain non alphanumeric characters (except a dash) within the domain name
=item Is a valid TLD*
=back
* All CCTLDs (Country Code TLDs) currently listed at IANA as well as the .com, .net, .org, .edu and .mil are checked
@errors will contain a list of all possible errors that the domain name may have, such as:
=over 4
=item Domain name can't start or end with non-alphanumeric character.
=item Domains with the .com extension cannot exceed 67 characters.
=back
Last, the domain lookup.
@response = $domain->Net::DLookup::DoWhois();
=over 4 @response will contain (in order)
=item Is domain registered? 1 for yes; 0 for no
=item Name of Registration Agency or Country
=item URL of Registration Agency for TLD
=item Whois Server for TLD
=item Whois Output
=item A "worded" reponse for domain availability "{domain} is available"
=back
If you're looking up a 3-letter TLD domain (.com, .net, .org, .edu and .mil), you have the choice to NOT perform
the second lookup. This would be useful if you're just checking for domain availability and don't care who's
already registered it. You can disable the second lookup by removing the 1. This will give you Internic's
plain Jane, uninformative whois information.
@response = $domain->Net::DLookup::DoWhois(1);
=cut
=head1 RESTRICTIONS
Net::DLookup requires that the Sockets (included with the Perl distribution) module is installed.
=head1 VERSION
Net::DLookup Version 1.01 6/10/2000
=head1 CAVEATS
Registration agencies are finicky beasts. They may change their whois server, urls, or responses (that this module
relies on) without notice. As of 6/10/2000, the agency data in the module is accurate.
=head1 CREDITS
Many thanks goes to Michael Chase for the new LoadTLD() and DumpTLD() routines.
=head1 AUTHOR
D. Jasmine Merced <djasmine@tnsgroup.com>, CPAN ID: DJASMINE
The Perl Archive <http://www.perlarchive.com>
=head1 COPYRIGHT
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
If you make modifications, the author would like to know so that they can be incorporated into future releases.
=cut
use strict;
use vars qw( $VERSION %_tld_data );
$VERSION = '1.01';
use Exporter;
my @ISA = qw( Exporter );
# Initialize class level data
my ( $MAX2TLD, $MAX3TLD, @ERRORS ) = ( 26, 67 );
sub new {
my $class = ref $_[0] || $_[0];
my $dlu = bless {
_TLD_DATA => undef,
_FULLDOMAIN => $_[1],
_NAME => undef,
_TLD => undef,
_NATION => undef,
_ISVALID => undef,
_RESPONSE => undef,
_WHOISOUTPUT => undef,
_ISREGISTERED => undef,
_TLDNAME => undef,
_TLDURL => undef,
_TLDMATCHRESP => undef,
_TLDQUERYDB => undef,
ERROR => undef,
}, $class;
$dlu -> LoadTLD( $_[1], 1 );
return $dlu;
}
sub LoadTLD {
my ( $dlu, $file, $clear ) = @_;
my $oldfile = '';
my ( $TLD, $URL, $QUERYDB, $MATCHRESP, $NAME );
$dlu -> {_TLD_DATA} = {} if $clear || ! $dlu -> {_TLD_DATA};
if ( $file ) {
if ( ! ref $file ) {
open( FILE, "<$file" ) or die "Can't read from $file, $!";
$oldfile = $file;
$file = \*FILE;
}
while ( <$file> ) {
s/\s+$//;
next if '' eq $_ || /^\s*#/;
( $TLD, $URL, $QUERYDB, $MATCHRESP, $NAME ) = split(/\t/,$_);
foreach ( $TLD, $URL, $QUERYDB, $MATCHRESP, $NAME ) {
$_ = '' if ! defined $_;
}
${$dlu -> {_TLD_DATA}}{$TLD} = [ $URL, $QUERYDB, $MATCHRESP, $NAME ];
}
close $file if $oldfile;
}
if ( ! keys %{$dlu -> {_TLD_DATA}} ) {
my $start = tell DATA;
$dlu -> LoadTLD( \*DATA, 1 );
seek DATA, $start, 0;
}
}
sub DumpTLD {
my ( $dlu, $file ) = @_;
return if ! $file || ! $dlu -> {_TLD_DATA};
my ( $oldfile, $TLD, $line, @dom );
if ( ! ref $file ) {
open( FILE, ">$file" ) or die "Can't write to $file, $!";
$oldfile = $file;
$file = \*FILE;
}
foreach $TLD (
# Sort domains by most general part first
map { @dom = split /\t/, $_; join ".", reverse @dom }
sort
map { @dom = split /\./, $_; join "\t", reverse @dom }
keys %{$dlu -> {_TLD_DATA}}
){
$line = join "\t", $TLD, @{$dlu -> {_TLD_DATA}{$TLD}};
$line =~ s/\s+$//;
print $file "$line\n";
}
close $file if $oldfile;
}
sub IsValid {
my ($self,$domain) = @_;
@ERRORS = ();
unless ($domain){
push(@ERRORS,"Error. No domain has been entered.\n");
}
else {
$self->{_FULLDOMAIN} = $domain;
my @DOMAIN = ();
@DOMAIN = split(/\./,$self->{_FULLDOMAIN});
my @REVERSED = reverse @DOMAIN;
if($DOMAIN[3]){
push(@ERRORS,"Error. Fourth level domains are not acceptable.\n")
}
elsif ($DOMAIN[2]){
if(length($REVERSED[0])==2){
$self->{_TLD} = $REVERSED[1].'.'.$REVERSED[0];
$self->{_NAME} = $REVERSED[2];
}
else {
push(@ERRORS,"This program cannot handle 3rd level domains.\n");
}
}
else {
$self->{_TLD} = $REVERSED[0];
$self->{_NAME} = $REVERSED[1];
}
if (($self->{_TLD})&&($self->{_NAME})){
_GetRegistrar($self);
_ValidateName($self);
}
else {
push(@ERRORS,"Error. Invalid domain name.\n");
}
}
return @ERRORS;
}
sub DoWhois {
my $self = shift;
my $INTERNICWHOIS = shift;
my ($ATTEMPTS,$MAXTRIES) = "";
unless ($self->{TLDQUERYDB}){
_GetRegistrar($self);
}
if ($self->{_TLDQUERYDB}){
my (@RESULT) = _PerformWhois($self);
foreach(@RESULT){
$self->{_WHOISOUTPUT} .= $_;
}
$self->{_ISREGISTERED} = 1;
$self->{_RESPONSE} = "$self->{_FULLDOMAIN} is already registered.\n";
if ($self->{_WHOISOUTPUT} =~ /$self->{_TLDMATCHRESP}/mig){
$self->{_ISREGISTERED} = 0;
$self->{_RESPONSE} = "$self->{_FULLDOMAIN} is available for registration.";
}
elsif ($self->{_WHOISOUTPUT} =~ /^\*/mig) {
$ATTEMPTS++;
sleep(1);
if ($ATTEMPTS > $MAXTRIES) {
$self->{_RESPONSE} = "Internic's Whois database is unavailable.";
}
}
elsif ($self->{_RESPONSE} =~ /$!/g) {
$self->{_RESPONSE} = "Could not connect to whois server $self->{_TLDQUERYDB}: $!";
}
if (($self->{_ISREGISTERED}==1)&&(length($self->{_TLD})==3)){
foreach(@RESULT){
chomp;
if (/Registrar: /){
$self->{_TLDNAME} = (split(/Registrar: /,$_))[1];
}
if (/Whois Server\: /){
$self->{_TLDQUERYDB} = (split(/Whois Server: /,$_))[1];
}
if (/Referral URL: /){
$self->{_TLDURL} = (split(/Referral URL: /,$_))[1];
}
}
}
if($INTERNICWHOIS){
@RESULT = _PerformWhois($self);
if (@RESULT){$self->{_WHOISOUTPUT}=undef;}
foreach(@RESULT){
$self->{_WHOISOUTPUT} .= $_;
}
}
}
else {
$self->{_RESPONSE} = "$self->{_TLD} does not have a whois server to look up. ";
$self->{_RESPONSE} .= "More information can be found at $self->{_TLDURL}" if $self->{_TLDURL};
}
return ($self->{_ISREGISTERED},$self->{_TLDNAME},$self->{_TLDURL},$self->{_TLDQUERYDB},$self->{_WHOISOUTPUT},$self->{_RESPONSE},$self->{_TLD});
}
sub _ValidateName {
my $self = shift;
my $tldlength = length($self->{_TLD});
my $domlength = length($self->{_FULLDOMAIN});
my $strip_dashes = $self->{_NAME};
my $temptest = $self->{_TLD};
my @tippytoptld = split(/\./,$self->{_TLD});
unless($tippytoptld[1]){
$tippytoptld[1] = $tippytoptld[0];
}
$strip_dashes =~ s/(-||\.)//g;
# Check TLD length
if (($tldlength > 6)||($tldlength <2)){
push(@ERRORS,"Invalid TLD.\n")
}
# Check fully qualified domain name length
if ((length($tippytoptld[1]) == 2)&&($domlength > $MAX2TLD)){
push(@ERRORS,"Domains with the $self->{_TLD} extension cannot exceed $MAX2TLD characters.\n");
}
elsif ((length($tippytoptld[1]) == 3)&&($domlength > $MAX3TLD)){
push(@ERRORS,"Domains with the $self->{_TLD} extension cannot exceed $MAX3TLD characters.\n");
}
# Check dash placement
if (($self->{_NAME} =~ /^\W/)||($self->{_NAME} =~ /\W$/)){
push(@ERRORS,"Domain name can't start or end with non-alphanumeric character.\n");
}
# Check for invalid characters
if ($strip_dashes =~ /\W/){
push(@ERRORS,"Invalid characters in domain name $strip_dashes.\n");
}
}
sub _GetRegistrar {
my $self = shift;
$self -> LoadTLD( '', 1 ) if ! keys %{$self -> {_TLD_DATA}};
my $TLD = '';
if ( exists $self -> {_TLD_DATA}{$self -> {_TLD}} ) {
$TLD = $self -> {_TLD};
}
elsif ( exists $self -> {_NATION} &&
exists $self -> {_TLD_DATA}{$self -> {_NATION}} ) {
$TLD = $self -> {_NATION};
}
if ( $TLD ) {
my ( $URL, $QUERYDB, $MATCHRESP, $NAME ) = @{$self -> {_TLD_DATA}{$TLD}};
$self -> {_TLDNAME} = $NAME;
$self -> {_TLDURL} = $URL;
$self -> {_TLDMATCHRESP} = $MATCHRESP;
$self -> {_TLDQUERYDB} = $QUERYDB;
}
unless ($self->{_TLDNAME}){
push @ERRORS, ".$self->{_TLD} is not a valid top level domain.\n";
}
}
sub _PerformWhois {
my $self = shift;
my(@RESULT,$SIN,$LEN,$OFFSET,$WRITTEN,$BUFFER) = "";
return "No whois server for $self->{_TLD}" if ! $self->{_TLDQUERYDB};
my ( $whois, $opts ) = ( $self->{_TLDQUERYDB}, '' );
( $whois, $opts ) = split /\s+/, $whois, 2 if $whois =~ /\s/;
use Socket;
socket(SOCK, PF_INET, SOCK_STREAM, (getprotobyname('tcp'))[2]) || return ((""));
$SIN = sockaddr_in(43, inet_aton( $whois ));
connect(SOCK, $SIN) || return (("$!"));
$OFFSET = 0;
$BUFFER = $self->{_FULLDOMAIN} . "$opts\r\n";
$LEN = length($BUFFER);
while($LEN) {
$WRITTEN = syswrite(SOCK,$BUFFER,$LEN,$OFFSET);
$LEN -= $WRITTEN;
$OFFSET += $WRITTEN;
}
@RESULT=<SOCK>;
close(SOCK);
return @RESULT;
}
1;
__DATA__
mil http://www.networksolutions.com/ whois.internic.net No match Internic Military
com http://www.networksolutions.com/ whois.internic.net No match Internic Commercial
net http://www.networksolutions.com/ whois.internic.net No match Internic Network
org http://www.networksolutions.com/ whois.internic.net No match Internic Organization
edu http://www.networksolutions.com/ whois.internic.net No match Internic Educational
ac http://www.nic.ac/ whois.ripe.net No entries found Ascension Isl. General
ac.ac http://www.nic.ac/ whois.ripe.net No entries found Ascension Isl. Academic
ac.at http://www.nic.at/ whois.aco.net No entries found Austria Academic
ac.be http://www.dns.be/ whois.ripe.net No entries found Belgium Academic
ac.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Academic
ac.il http://www.isoc.org.il/ whois.ripe.net No entries found Israel Academic
ac.in http://soochak.ncst.ernet.in/~domainreg/ whois.iisc.ernet.in no entries found India Academic
ac.jp http://www.nic.ad.jp/ whois.nic.ad.jp No match Japan Academic
ac.kr http://www.krnic.net/english/index.html whois.nic.or.kr is not registered Korea Academic
ac.th http://www.thnic.net/ whois.thnic.net No entries Thailand Academic
ac.uk http://www.nic.uk/ whois.ja.net No match UK Academic
ac.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Academic
ad http://www.nic.ad/ Andorra
ae http://www.emirates.net.ae/ United Arab Emirates
af whois.netnames.net No Match Afghanistan
ah.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
ai http://www.offshore.com.ai/domain_names/ Anguilla
al inima@inima.al Albania
alt.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Alternative
am http://www.amnic.net/ whois.nic.am No information available Armenia
an Netherlands Antilles
arts.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Artistic
as http://www.nic.as/ whois.nic.as Domain Not Found American Somoa
asn.au http://www.aunic.net/ whois.aunic.net No entries found Australia Association
asso.fr http://www.nic.fr/ whois.nic.fr No entries found France Asso
asso.mc http://www.nic.mc/ whois.ripe.net No entries found Monaco Organization
at http://www.nic.at/ whois.aco.net No entries found Austria General
ba http://www.utic.net.ba/ Bosnia & Herzegovina
bbs.tr http://dns.metu.edu.tr/ whois.metu.edu.tr Not found in database Turkey BBS
bc.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
be http://www.dns.be/ whois.ripe.net No entries found Belgium
bf http://www.onatel.bf/domaine.htm Burkina Faso
bg http://www.digsys.bg/bg-nic/ Bulgaria
bi http://www.nic.cd/ Burundi
bj.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
bn http://jtb.brunet.bn/brunet/brunet.htm Brunei Darussalam
br http://registro.fapesp.br/ Brazil
bt http://www.nic.bt/ whois.nic.bt shrubbery.com Bhutan
bv Bouvet Island
bw Botswana
ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada
cc http://www.nic.cc/ whois.nic.cc No match ISC International
cd http://www.nic.cd/ Zaire
cf http://www.socatel.intnet.cf/ Central African Republic
cg http://www.nic.cd/ Congo
ch http://www.nic.ch/ whois.nic.ch No entries found Switzerland
ci oumtana@aipdi.ci Ivory Coast
ck Cook Islands
cl http://www.nic.cl/ Chile
cm http://info.intelcam.cm/ Cameroon
cn http://www.cnnic.net.cn/indexeng.html China
co http://polifemo.uniandes.edu.co/PAGINAS/NEWDOMCO/defsolict.htm Colombia
co.ac http://www.nic.ac/ whois.ripe.net No entries found Ascension Isl. Commercial
co.at http://www.nic.at/ whois.aco.net No entries found Austria Commercial
co.il http://www.isoc.org.il/ whois.ripe.net No entries found Israel Commercial
co.in http://soochak.ncst.ernet.in/~domainreg/ whois.iisc.ernet.in no entries found India Commercial
co.jp http://www.nic.ad.jp/ whois.nic.ad.jp No match Japan Commercial
co.kr http://www.krnic.net/english/index.html whois.nic.or.kr is not registered Korea Commercial
co.th http://www.thnic.net/ whois.thnic.net No entries Thailand Commercial
co.uk http://www.nic.uk/ whois.nic.uk No match UK Commercial
co.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Commercial
com.al nfra@inima.al Albania
com.au http://www.aunic.net/ whois.aunic.net No entries found Australia Commercial
com.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Commercial
com.ec http://www.nic.ec/ whois.lac.net No match found Ecuador Commercial
com.hk http://www.cuhk.hk/ whois.hknic.net.hk returns no relevent Hong Kong Commercial
com.mm http://www.nic.mm/ whois.nic.mm No domains matched Myanmar Commercial
com.mx http://www.nic.mx/ whois.nic.mx Referencias de Organization No Encontradas Mexico Commercial
com.pl http://www.nask.pl/ whois.ripe.net No entries found Poland Commercial
com.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Commercial
com.ru http://www.ripn.net/nic/ whois.ripn.net No entries found Russia Commercial
com.sg http://www.nic.net.sg/ whois.nic.net.sg NO entry found Singapore Commercial
com.tr http://dns.metu.edu.tr/ whois.metu.edu.tr Not found in database Turkey Commercial
cq.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
cr http://www.nic.cr/ Costa Rica
cs Czechoslovakia (former)
cu http://www.nic.cu/ Cuba
cv Cape Verde Islands
cx http://www.nic.cx/ whois.nic.cx Domain not found Christmas Island
cy http://www.ucy.ac.cy/form1.html Cyprus
cz http://www.nic.cz whois.ripe.net No entries found Czech Republic
de http://www.nic.de/ whois.ripe.net No entries found Germany
dj http://www.intnet.dj/ Djibouti
dk http://www.dk-hostmaster.dk/ whois.ripe.net No entries found Denmark
dm Dominica
do http://www.nic.do/ Dominican Republic
dz Denmark
ec http://www.nic.ec/ Ecuador
edu.al gdaci@uptal.tirana.al Albania
edu.au http://www.aunic.net/ whois.aunic.net No entries found Australia Educational
edu.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Educational
edu.hk http://www.cuhk.hk/ whois.hknic.net.hk returns no relevent Hong Kong Educational
edu.mm http://www.nic.mm/ whois.nic.mm No domains matched Myanmar Educational
edu.mx http://www.nic.mx/ whois.nic.mx Referencias de Organization No Encontradas Mexico Educational
edu.tr http://dns.metu.edu.tr/ whois.metu.edu.tr Not found in database Turkey Educational
edu.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Educational
ee http://www.eenet.ee/services/subdomains.html Estonia
eg http://www.frcu.eun.eg/ Egypt
eh Western Sahara
er Eritrea
ernet.in http://soochak.ncst.ernet.in/~domainreg/ whois.iisc.ernet.in no entries found India ERNET
es http://www.nic.es/ Spain
et http://www.telecom.net.et/ Ethiopia
fi http://www.thk.fi/ Finland
fin.ec http://www.nic.ec/ whois.lac.net No match found Ecuador Finance
firm.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Firm
fj http://www.usp.ac.fj/domreg/ Fiji
fk http://www.fidc.org.fk/domain-registration/home.htm Falkland Islands
fm http://www.dot.fm/ Micronesia
fo http://www.nic.fo/ whois.ripe.net No entries found Faroe Islands
fr http://www.nic.fr/ whois.nic.fr No entries found France General
fx France - Metropolitan
ga Gabon
gb http://www.nic.uk/ United Kingdom
gb.com http://www.nic.uk/ whois.nomination.net No match for Alternative UK Name
gb.net http://www.nic.uk/ whois.nomination.net No match for Alternative UK Name
gd Grenada
gd.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
ge http://www.nic.net.ge/ Georgia
gf http://www.nplus.gf/ whois.nplus.gf not found in our database French Guiana
gg http://www.isles.net/ Guernsey
gh http://www.ghana.com/inet/domreg.html Ghana
gi http://www.gibnet.gi/nic/ Gibraltar
gl http://www.nic.gl/ Greenland
gm Gambia
gn http://www.psg.com/dns/gn/ Guinea
go.jp http://www.nic.ad.jp/ whois.nic.ad.jp No match Japan Government
go.kr http://www.krnic.net/english/index.html whois.nic.or.kr is not registered Korea Government
go.th http://www.thnic.net/ whois.thnic.net No entries Thailand Government
gov.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Government
gov.ec http://www.nic.ec/ whois.lac.net No match found Ecuador Government
gov.hk http://www.cuhk.hk/ whois.hknic.net.hk returns no relevent Hong Kong Government
gov.il http://www.isoc.org.il/ whois.ripe.net No entries found Israel Government
gov.in http://soochak.ncst.ernet.in/~domainreg/ whois.iisc.ernet.in no entries found India Government
gov.mm http://www.nic.mm/ whois.nic.mm No domains matched Myanmar Government
gov.mx http://www.nic.mx/ whois.nic.mx Referencias de Organization No Encontradas Mexico Government
gov.sg http://www.nic.net.sg/ whois.nic.net.sg NO entry found Singapore Government
gov.tr http://dns.metu.edu.tr/ whois.metu.edu.tr Not found in database Turkey Government
gov.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Government
gp http://www.nic.gp/ Guadeloupe
gq http://www.getesa.gq/ Equatorial Guinea
gr http://www.hostmaster.gr/ Greece
gs http://www.gs/ Georgia
gs.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
gt http://www.gt/cir/cir.htm Guatemala
gu http://gadao.gov.gu/ Guam
gv.ac http://www.nic.ac/ whois.ripe.net No entries found Ascension Isl. Government
gv.at http://www.nic.at/ whois.aco.net No entries found Austria Government
gw Guinea-Bissau
gx.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
gy Guyana
gz.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
hb.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
he.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
hi.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
hk http://www.cuhk.hk/ Hong Kong
hk.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
hl.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
hm http://www.hmnic.net/ Hearn and McDonald Islands
hn http://www.hn/ Honduras
hn.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
hr http://www.carnet.hr/DNS/ Croatia
ht http://www.haitiworld.com/ Haiti
hu http://www.nic.hu/ Hungary
id http://www.idnic.net.id/ Indonesia
ie http://www.ucd.ie/hostmaster/ Ireland
il http://www.isoc.org.il/ Israel
im http://www.nic.im/ Isle of Man
in http://soochak.ncst.ernet.in/~domainreg/ India
info.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Informational
io http://www.nic.io/ British Indian Ocean Territory
iq Iraq
ir http://www.nic.ir/ Iran
is http://www.isnet.is/nic/ whois.ripe.net No entries found Iceland
it http://www.nic.it/ whois.ripe.net No entries found Italy
je http://www.isles.net/ Jersey
jl.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
jm Jamaica
jo http://www.nic.gov.jo/ Jordan
jp http://www.nic.ad.jp/ Japan
ad.jp http://www.nic.ad.jp/ whois.nic.ad.jp No match Japan Admin
js.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
k12.il http://www.isoc.org.il/ whois.ripe.net No entries found Israel K12
k12.tr http://dns.metu.edu.tr/ whois.metu.edu.tr Not found in database Turkey K12
ke http://www.nbnet.co.ke/index.html Kenya
kg http://www.kg/ Kyrgystan
kh http://www.camnet.com.kh/ Cambodia
ki Kiribati
km Comoros
kn St. Kitts & Nevis
kp Korea, Democratic People's Rep
kr http://www.krnic.net/english/index.html Korea, Republic of
kw Kuwait
ky http://www.nic.ky Cayman Islands
kz http://www.domain.kz/ Kazakhstan
la Laos
lb http://www.aub.edu.lb/lebanon-online/ Lebanon
lc http://www.sluonestop.com/isis/dns/ St. Lucia
li http://www.nic.li/ whois.nic.li No entries found Liechtenstein
lk http://www.nic.lk/ Sri Lanka
ln.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
lr Liberia
ls Lesotho
lt http://vingis.sc-uni.ktu.lt/domreg/ whois.ripe.net No entries found Lithuania
ltd.uk http://www.nic.uk/ whois.nic.uk No match UK Ltd
lu http://www.dns.lu/ whois.ripe.net No entries found Luxembourg
lv http://www.nic.lv/DNS/ Latvia
ly http://www.nic.ly/ Libya
ma Morocco
mb.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
mc http://www.nic.mc/ Monaco
md http://www.nic.md/ Moldova
med.ec http://www.nic.ec/ whois.lac.net No match found Ecuador Medical
mg nic-mg@orstom.mg Madagascar
mh http://www.nic.net.mh/ Marshall Islands
mi.th http://www.thnic.net/ whois.thnic.net No entries Thailand Military
mil.ec http://www.nic.ec/ whois.lac.net No match found Ecuador Military
mil.tr http://dns.metu.edu.tr/ whois.metu.edu.tr Not found in database Turkey Military
mil.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Military
mk http://www.mpt.com.mk/ Macedonia
ml Mali
mm http://www.nic.mm/ Myanmar
mn http://www.mongoliaonline.mn/ Mongolia
mo http://www.umac.mo/other/index.html Macao
mo.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
mp Northern Marianas Islands
mq http://www.nic.mq/ Martinique
mr http://www.univ-nkc.mr/nic_mr.html Mauritania
ms http://www.ms/ Montserrat
mt http://www.um.edu.mt/nic/ Malta
mu http://www.posix.co.za/mu/ Mauritius
muni.il http://www.isoc.org.il/ whois.ripe.net No entries found Israel Municipality
mv Maldives
mw http://www.tarsus.net/ Malawi
mx http://www.nic.mx/ whois.nic.mx Referencias de Organization No Encontradas Mexico General
my http://www.mynic.net/ Malaysia
mz Mozambique
na http://www.lisse.na/dns/ Namibia
nb.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
nc http://www.orstom.nc/BASE/ORSTOM_CENTRE/TLD_NC/registration.html New Caledonia
ne Niger
ne.jp http://www.nic.ad.jp/ whois.nic.ad.jp No match Japan Network
ne.kr http://www.krnic.net/english/index.html whois.nic.or.kr is not registered Korea Network
net.au http://www.aunic.net/ whois.net.au AUNIC -T domain Australia ISP
net.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Internet/Networking
net.ec http://www.nic.ec/ whois.lac.net No match found Ecuador ISP
net.hk http://www.cuhk.hk/ whois.hknic.net.hk returns no relevent Hong Kong Network
net.il http://www.isoc.org.il/ whois.ripe.net No entries found Israel Network
net.in http://soochak.ncst.ernet.in/~domainreg/ whois.iisc.ernet.in no entries found India Network
net.mm http://www.nic.mm/ whois.nic.mm No domains matched Myanmar Network
net.mx http://www.nic.mx/ whois.nic.mx Referencias de Organization No Encontradas Mexico Network
net.pl http://www.nask.pl/ whois.ripe.net No entries found Poland Network
net.ru http://www.ripn.net/nic/ whois.ripn.net No entries found Russia Network
net.sg http://www.nic.net.sg/ whois.nic.net.sg NO entry found Singapore Network
net.th http://www.thnic.net/ whois.thnic.net No entries Thailand Network
net.tr http://dns.metu.edu.tr/ whois.metu.edu.tr Not found in database Turkey Network
net.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Network
nf http://www.names.nf/ Norfolk Island
nf.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
ng Nigeria
ngo.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Non Govt Org
ni http://165.98.1.2/nic-for.html Nicaragua
nl http://www.domain-registry.nl/ whois.nic.nl not a registered domain Netherlands
nm.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
nm.kr http://www.krnic.net/english/index.html whois.nic.or.kr is not registered Korea Nm
no http://www.uninett.no/navn/ whois.ripe.net No entries found Norway
nom.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Personal
nom.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Individual
np Nepal
nr Nauru
ns.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
nt Neutral Zone
nt.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
nt.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Nt
nu http://www.nunames.nu/ whois.nic.nu No match Niue
nx.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
nz http://www.domainz.net.nz/ New Zealand
om http://www.gto.net.om/index.shtml Oman
on.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
or.ac http://www.nic.ac/ whois.ripe.net No entries found Ascension Isl. Organization
or.at http://www.nic.at/ whois.aco.net No entries found Austria Organization
or.jp http://www.nic.ad.jp/ whois.nic.ad.jp No match Japan Organization
or.kr http://www.krnic.net/english/index.html whois.nic.or.kr is not registered Korea Organization
or.th http://www.thnic.net/ whois.thnic.net No entries Thailand Organization
org.al rezi@soros.al Albania
org.au http://www.aunic.net/ whois.aunic.net No entries found Australia Organization
org.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Organization
org.ec http://www.nic.ec/ whois.lac.net No match found Ecuador Organization
org.hk http://www.cuhk.hk/ whois.hknic.net.hk returns no relevent Hong Kong Organization
org.il http://www.isoc.org.il/ whois.ripe.net No entries found Israel Organization
org.mm http://www.nic.mm/ whois.nic.mm No domains matched Myanmar Organization
org.mx http://www.nic.mx/ whois.nic.mx Referencias de Organization No Encontradas Mexico Organization
org.pl http://www.nask.pl/ whois.ripe.net No entries found Poland Organization
org.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Organization
org.ru http://www.ripn.net/nic/ whois.ripn.net No entries found Russia Organization
org.sg http://www.nic.net.sg/ whois.nic.net.sg NO entry found Singapore Organization
org.tr http://dns.metu.edu.tr/ whois.metu.edu.tr Not found in database Turkey Organization
org.uk http://www.nic.uk/ whois.nic.uk No match UK Organization
org.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Organization
pa http://www.nic.pa/ Panama
pe http://ekeko.rcp.net.pe/rcp/PE-NIC/ Peru
pe.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
pf French Polynesia
pg Papua New Guinea
ph http://www.domreg.org.ph/ Philippines
pk http://www.pknic.net.pk/ Pakistan
pl http://www.nask.pl/ whois.ripe.net No entries found Poland General
plc.uk http://www.nic.uk/ whois.nic.uk No match UK Plc
pm http://www.nic.pm/ St. Pierre
pn http://www.nic.pn/ Pitcairn
pr http://www.uprr.pr/main.html Puerto Rico
presse.fr http://www.nic.fr/ whois.nic.fr No entries found France Presse
pt http://www.dns.pt/ whois.ripe.net No entries found Portugal
pw Palau
py http://www.cnc.una.py/regdom/ Paraguay
qa http://www.qatar.net.qa/ Qatar
qc.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
qh.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
re http://www.nic.fr/ Reunion Island
re.kr http://www.krnic.net/english/index.html whois.nic.or.kr is not registered Korea Research
rec.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Recreational
res.in http://soochak.ncst.ernet.in/~domainreg/ whois.iisc.ernet.in no entries found India Research
ro http://www.rnc.ro/ Romania
ru http://www.ripn.net/nic/ whois.ripn.net No entries found Russian Companies Only
rw http://www.nic.cd/ Rwanda
sa http://www.saudinic.net.sa/ Saudi Arabia
sb http://www.nic.net.sb/ Solomon Islands
sc http://www.sc/ Seychelles
sc.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
school.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa School
sd http://www.sudatel.sd/ Sudan
se http://www.nic-se.se/ whois.nic-se.se No entries found Sweden
sg http://www.nic.net.sg/ Singapore
sh http://www.nic.sh/ St. Helena
sh.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
si http://www.arnes.si/si-domene/ Slovenia
sj Svalbard and Jan Mayen Islands
sk http://www.eunet.sk/sk-nic/ whois.ripe.net No entries found Slovak Republic
sk.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
sl Sierra Leone
sm http://www.intelcom.sm/Naming/ San Marino
sn http://www.ucad.sn/nic.html Senegal Republic
sn.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
so http://www.wcd.so/ Somalia
sr Surinam
st http://www.nic.st/ Sao Tome
store.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Store
su http://www.ripn.net/nic/ USSR (former)
sv http://www.svnet.org.sv/ El Salvador
sy Syria
sz http://www.iafrica.sz/domreg/ Swaziland
tc http://www.tc/ Turks & Caicos
td Chad
tf http://www.tf/ French Southern Territories
tg Togo
th http://www.thnic.net/ Thailand
tj http://www.nic.tj/ whois.nic.tj No match Tajikistan
tj.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
tk Tokelau
tm http://www.nic.tm/ whois.nic.tm No Match Turkmenistan
tm.fr http://www.nic.fr/ whois.nic.fr No entries found France Trade Mark
tm.mc http://www.nic.mc/ whois.ripe.net No entries found Monaco Commercial
tm.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania TradeMark
tm.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Trademark
tn http://www.ati.tn/Nic/ Tunisia
to http://www.tonic.to/ monarch.tonic.to FULL 0 Tonga
tp http://www.nic.tp/ East Timor
tr http://dns.metu.edu.tr/ Turkey
tt http://ns1.tstt.net.tt/nic/ Trinidad And Tobago
tv http://www.nic.tv/ Tuvalu
tw http://www.twnic.net/ Taiwan
tw.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
tz Tanzania
ua http://nic.ua.net/ Ukraine
ug http://www.nic.ug/ Uganada
uk http://www.nic.uk/ United Kingdom
uk.co http://www.nic.uk/ whois.uk.co No match UK Commercial Alternative
uk.com http://www.nic.uk/ whois.nomination.net No match for Alternative UK Name
uk.net http://www.nic.uk/ whois.nomination.net No match for Alternative UK Name
um http://www.isi.edu/us-domain/ US Minor Outlying Islands
us http://www.isi.edu/in-notes/usdnr/ United States
uy http://www.rau.edu.uy/rau/dom/ Uruguay
uz http://www.freenet.uz/ Uzbekistan
va Vatican City
vc St. Vincent
ve http://www.nic.ve/ Venezuela
vg http://www.vg/ British Virgin Islands
vi http://www.usvi.net/cobex/ Us Virgin Islands
vn http://www.batin.com.vn/ Vietnam
vu Vanuatu
web.za http://www.frd.ac.za/uninet/zadomains.html whois.co.za No information available South Africa Web
wf http://www.nic.fr/ Wallis and Futuna Islands
ws Samoa
www.ro http://www.rnc.ro/ whois.ripe.net No entries found Romania Web
xj.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
xz.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
ye Yemen
yk.ca http://www.cdnnet.ca/ whois.cdnnet.ca Not found Canada Regional
yn.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
yt http://www.nic.fr/Procedures/English/ Mayotte
yu http://www.nic.yu/ Yugoslavia
za http://www.frd.ac.za/uninet/zadomains.html South Africa
zj.cn http://www.cnnic.net.cn/indexeng.html whois.cnnic.cn No entries China Regional
zm http://www.zamnet.zm/ Zambia
zr http://www.nic.zr/ Zaire
zw Zimbabwe