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 , CPAN ID: DJASMINE The Perl Archive =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=; 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