Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

IO::Socket whois

by ag4ve (Monk)
on Feb 26, 2014 at 14:04 UTC ( #1076251=perlquestion: print w/ replies, xml ) Need Help??
ag4ve has asked for the wisdom of the Perl Monks concerning the following question:

I can't figure out what I'm missing here:
#!/usr/bin/env perl use strict; use warnings; use Data::Dumper; use IO::Socket; my %whois_servers = ( "RIPE"=>"whois.ripe.net", "APNIC"=>"whois.apnic.net", "KRNIC"=>"whois.krnic.net", "LACNIC"=>"whois.lacnic.net", "ARIN"=>"whois.arin.net", "AFRINIC"=>"whois.afrinic.net", ); my $sock = IO::Socket::INET->new( PeerAddr=>$whois_servers{ARIN}, PeerPort=>'43', Timeout=>'60', ); $sock->print("n + 8.8.8.8.\n"); my @ret = <$sock>; @ret = grep {length($_)} map { s/\n//; $_ } @ret; print Dumper(\@ret);
Which gives "No match found for n 8.8.8.8.." and produces this packet:
0000 6e 20 2b 20 38 2e 38 2e 38 2e 38 2e 0a n + 8.8.8.8..
Which is the same as the whois client maintained by "Report bugs to <md+whois@linux.it>." but it produces the proper results

Comment on IO::Socket whois
Select or Download Code
Re: IO::Socket whois
by VinsWorldcom (Priest) on Feb 26, 2014 at 14:39 UTC

    Why the '+' sign in the packet data? I tried this:

    $sock->print("n 8.8.8.8.\n");

    And it works fine. Windows 7 x64, Strawberry 5.18.1:

    VinsWorldcom@C:\Users\VinsWorldcom\tmp> cat test.pl use strict; use warnings; use Data::Dumper; use IO::Socket; my %whois_servers = ( "RIPE"=>"whois.ripe.net", "APNIC"=>"whois.apnic.net", "KRNIC"=>"whois.krnic.net", "LACNIC"=>"whois.lacnic.net", "ARIN"=>"whois.arin.net", "AFRINIC"=>"whois.afrinic.net", ); my $sock = IO::Socket::INET->new( PeerAddr=>$whois_servers{ARIN}, PeerPort=>'43', Timeout=>'60', ); $sock->print("n 8.8.8.8\n"); my @ret = <$sock>; @ret = grep {length($_)} map { s/\n//; $_ } @ret; print Dumper(\@ret); VinsWorldcom@C:\Users\VinsWorldcom\tmp> test.pl $VAR1 = [ '#', '# ARIN WHOIS data and services are subject to the Terms of +Use', '# available at: https://www.arin.net/whois_tou.html', '#', '#', '# The following results may also be obtained via:', '# http://whois.arin.net/rest/nets;q=8.8.8.8?showDetails=tru +e&showARIN=false&ext=netref2', '#', 'Level 3 Communications, Inc. LVLT-ORG-8-8 (NET-8-0-0-0-1) 8 +.0.0.0 - 8.255.255.255', 'Google Incorporated LVLT-GOOGL-1-8-8-8 (NET-8-8-8-0-1) 8.8. +8.0 - 8.8.8.255', '#', '# ARIN WHOIS data and services are subject to the Terms of +Use', '# available at: https://www.arin.net/whois_tou.html', '#' ];
      Doh, that worked. Thanks

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1076251]
Approved by Corion
Front-paged by toolic
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (14)
As of 2014-08-20 18:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (121 votes), past polls