http://www.perlmonks.org?node_id=1066557

i just needed an nslookup like tool so i wrote this oneliner.

F:\scripts>pllookup.pl perlmonks.org bing.com example.com

use Socket;print$_,"\n"and map$a.=ord.".",split'',inet_aton$_ and chop +$a and print$a,"\n\n"and$a=""for@ARGV;

Replies are listed 'Best First'.
Re: Dns lookups
by hippo (Bishop) on Dec 11, 2013 at 17:04 UTC

    Any reason not to use gethostbyname() instead?

    perl -MSocket -e '@h=gethostbyname($_) and print "$_\n".inet_ntoa($h[4])."\n\n" for @ARGV;' perlmonks.org bing.com example.com

    Still no good for IPv6, obviously, but a bit less wheel reinvention.

      haha. yeah i guess i should have looked into that module a bit more. I was just using what i was familiar with; needed something quick and dirty.

        and also you don't need those parens for gethostbyname

      you can also get rid of that pesky array

      use Socket;print "$_\n".inet_ntoa((gethostbyname$_)[4])."\n\n" for @AR +GV;

        The array is there to cope with the possibility of an unresolvable host. If you try your example above with args like

        ./pllookup.pl dklghslfhslgshj.com foo.com

        the unresolvability of dklghslfhslgshj.com would cause it to die on the first argument, whereas with the array it will just skip that and carry on to the remaining args. To my mind that's a better UX but others may disagree.

Re: Dns lookups
by VinsWorldcom (Prior) on Dec 11, 2013 at 15:49 UTC

    Nice, but doesn't do IPv6.