Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
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 (Vicar) 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 romping around the Monastery: (5)
As of 2015-07-04 02:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (57 votes), past polls