perl使用函数将获取到的主机名转换为ip地址

发布时间:2019-09-10编辑:脚本学堂
perl使用函数将获取到的主机名转换为ip地址

有关函数介绍:
inet_aton() 转换,转换压缩为二进制形式,也可以将主机名转换为压缩的IP地址
gethostbyname 将符号型主机名转换为压缩的ip地址
gethostbyaddr 作相反的转换
inet_ntoa 转换为可阅读的“圆点四元组”

文件名:get_host_by_name.pl
 

复制代码 代码如下:
#!/usr/bin/perl -w
use Socket;
while(<>){
chomp;
my $packed_address = gethostbyname($_);
unless ($packed_address){
print "$_ => ?n";
next
}
  my $dotted_quad = inet_ntoa($packed_address);
  print "$_ => $dotted_quad n";
}

测试:
perl get_host_by_name.pl < hostname.txt
www.jb200.com => 192.168.1.222

2、将ip转换为主机名
 

复制代码 代码如下:
#!/usr/bin/perl -w
use Socket;
my $ADDR_PAT = '^/d . d . d .d $';
while (<>){
chomp;
die "$_: not a valid address" unless /$ADDR_PAT/o;
my $name = gethostbyaddr(inet_aton($_),AF_INET);
$name ||= '?';
print "$_ => $name n";
}