-4

我有两个选择。一个是我有一个包含 IP 列表的数组。例如

 my @Ip=();  # array that has the IPs below in it

样本输入:

108.0.0.30
108.0.0.30
108.0.0.30
192.168.1.1
192.168.1.2
10.0.0.1

我需要一个可以对这样一个数组进行排序并告诉它是哪个网络类和子网掩码的程序。例如,输出应该是

10.1.1.1/25 10.1.1.1 是 ip,25 是子掩码
4

1 回答 1

3

Net::IP, Net::IP::Resolver,Net::IP::Match::Regexp和其他子模块Net::IP对你来说很好。只是排序的部分是困难的。但是如果你用谷歌搜索,你会发现一些不错的方法。例如:

my @ips = qw(
    172.27.32.200
    172.19.32.100
    10.1.1.60
    192.20.30.133
);

@ips = map {s/\s+//g; $_} sort map {s/(\d+)/sprintf "%3s", $1/eg; $_} @ips;

print join "\n", @ips;

在这里找到

于 2013-07-06T20:59:05.443 回答