Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: Whois script help

by fokat (Deacon)
on Jan 12, 2005 at 02:46 UTC ( #421483=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Whois script help
in thread Whois script help

Kanji said:

I second the use of DNS instead of whois.

but himanh said...

Basically checking if any of my domains are transferred or still with me.

So, if himanh asks his DNS server, he will always believe the domain is with him. Just wanted to throw in this advice.

If you want to make it work, you need to ask a root name server for the delegation information to reach to the name servers. For instance...

#!/usr/bin/perl -w use strict; use NetAddr::IP; use Net::DNS::Resolver; my $res = new Net::DNS::Resolver; # For domains in CCTLDs, you need to ask root-servers.net instead # and follow the delegation chain. $res->nameservers(NetAddr::IP->new("g.gtld-servers.net")->addr); for my $dom (map { chomp; $_ } <DATA>) { my $packet = $res->query($dom, 'NS'); # No answer received... unless ($packet) { warn "No response for $dom\n"; next; } # A DNS answer (response) was received but ... my @answer = $packet->answer; # ... it might not contain real answers ... unless (@answer) { warn "Response packet contains no answer section for $dom\n"; next; } # ... or it might be what I am looking for. for my $s (@answer) { next unless $s->type eq 'NS'; print "$dom: ", $s->nsdname, "\n"; } } __END__ google.com yahoo.com aol.com

will answer the right people for the 7 gTLDs. This is only slightly tested and you might need to change the gtld server to use.

This code should give you something to start playing with...

Best regards

-lem, but some call me fokat


Comment on Re^3: Whois script help
Download Code
Re^4: Whois script help
by Kanji (Parson) on Jan 12, 2005 at 04:50 UTC
    So, if himanh asks his DNS server, he will always believe the domain is with him. Just wanted to throw in this advice.

    Sorry, that was an ommission on my part, but is the reason why I used Net::DNS::Resolver::Recurse instead of the usual Net::DNS::Resolver -- the former starts it's recursive query with the DNS hint servers, which should be the same as the DNS root servers (eg, a.root-servers.net) and are one step up from the gTLD server you use.

    If they're not (because you're running your own root server or using an alternative one), then you can force N:D:R:R to start from a different nameserver with the hints method.

    my @root_ns = map $_ . '.root-servers.net', 'a'..'m'; $res->hints(@root_ns);

        --k.


Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://421483]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (8)
As of 2014-07-10 23:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (217 votes), past polls