#!/usr/bin/perl use strict; use warnings; use Getopt::Long qw(:config no_ignore_case); use Pod::Usage; use Socket; use Socket6; use Socket::GetAddrInfo qw(getaddrinfo); my %opt; GetOptions( 'new!' => \$opt{new}, 'old!' => \$opt{old} ) or pod2usage(-verbose => 0); if (!@ARGV) { pod2usage(-verbose => 0, -message => "$0: host required\n") } if ((!defined($opt{new})) && (!defined($opt{old}))) { $opt{new} = $opt{old} = 1 } if ($opt{old}) { my $gethost = gethostbyname($ARGV[0]); my $host = inet_ntoa((gethostbyname($ARGV[0]))[4]); # print "OLD: gethostbyname() = $gethost\n"; print "OLD: inet_ntoa() Address = $host\n"; } if ($opt{new}) { my ($err, @getaddr) = getaddrinfo($ARGV[0], 0); if (!@getaddr) { print "$0: $err\n"; exit } my $host = inet_ntop(AF_INET6, (getaddrinfo($ARGV[0], 0))[1]->{addr}); # printf "NEW: getaddrinfo() = %s\n", $getaddr[1]->{addr}; print "NEW: inet_ntop() Address = $host\n"; } __END__ =head1 SYNOPSIS program [--old|--new] IP[v6]_address | hostname