in reply to Net::Dns::packet creation.

You mean something like this?

#!/usr/bin/perl #Resolve IP address into hostname sub ReverseLookup { my(@addrs,$xname,$xaliases,$xtype,$xlen,$addr); @addrs=split(/\./,$_[0]); $addr=pack(' C4',@addrs[0..3]); ($xname,$xaliases,$xtype,$xlen,@addrs)=gethostbyaddr($addr,2); return $xname; } $ip="65.0.78.101"; $name=&ReverseLookup($ip); print "$ip = $name\n";

Replies are listed 'Best First'.
Re^2: Net::Dns::packet creation.
by cord-bin (Friar) on May 26, 2014 at 14:18 UTC
    shadrack gave a good answer by using gethostbyaddr with the pack function to no use the Socket module which is tricky.
    We normally would do :
    #!/usr/bin/perl use Socket; #Resolve IP address into hostname sub ReverseLookup { my(@addrs,$xname,$xaliases,$xtype,$xlen,$addr); # @addrs=split(/\./,$_[0]); # $addr=pack('c4',@addrs[0..3]); # c or C - A signed/unsigned char +(8-bit integer) value $addr = inet_aton($_[0..3]); ($xname,$xaliases,$xtype,$xlen,@addrs)=gethostbyaddr($addr,2); return $xname; }
    We don't know why MonkeyManChfKiller don't want to use modules, it's his choice but obviously this can be achieved in another way with perl.
    Nice use of pack() which I don't see very often.