我有一份工作需要在IP地址上进行nslookup。如果它匹配,那么我需要打印主机的名称。问题是运行命令时IP地址反转。
nslookup 10.11.12.13
13.12.11.10.in-addr.arpa
我尝试使用reverse
,但这反过来了所有不符合我想要的内容。
my $ip = '13.12.11.10';
$result = reverse($ip);
print $result;
然后打印01.11.21.31
我不想扭转一切,只是全数。
请有人帮忙吗?
答案 0 :(得分:1)
使用split
简单地在join(".", reverse(split(/\./, $ip)))
上拆分IP地址,反转生成的数组,然后重新加入:
nslookup
这会给你"逆转" IP地址,然后您可以将其与 vm.map.events.bounds_changed = function() {
google.map.event.removeListener(zoom_changed);
}
结果进行比较。
答案 1 :(得分:0)
所以我们需要做的就是拆分实际地址,反向重新排序,然后将IP与反向IP匹配。
use strict;
use warnings;
my $ipaddress = '10.11.12.13';
my @ip = split /\./,$ipaddress; #split the IP by .
my $sserddapi = "$ip[3].$ip[2].$ip[1].$ip[0]"; #reverse it
my @lookup = `nslookup $ipaddress`; #do the match
$lookup[3] =~ s/\s+//g; #remove all whitespace
my @device = split /=/, $lookup[3]; #get the hostname
if ($lookup[3] =~ /^$sserddapi/) { #see if it matches
$lookup[3] =~ s/$sserddapi.in-addr.arpaname=//g; #Remove the unwanted stuff
print "$ipaddress = $lookup[3]\n"; #print the result
}