使用perl在Linux中反转IP地址

时间:2017-09-18 06:28:32

标签: perl

我有一份工作需要在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 我不想扭转一切,只是全数。

请有人帮忙吗?

2 个答案:

答案 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
    }