3

如何检查 IP 号码是否与 Perl 在同一子网中?

我可以使用NetAddr::IP吗?

4

2 回答 2

9

你可以试试这个:

#!/usr/bin/perl

use warnings;
use strict;
use NetAddr::IP;

my $first  = NetAddr::IP->new('10.0.0.1/24');
my $second = NetAddr::IP->new('10.0.0.5/32');

if ($second->within($first)) {
    printf "%s is within %s\n", $second, $first;
} else {
    printf "%s is not within %s\n", $second, $first;
}
于 2009-06-08T10:15:43.670 回答
5

似乎Net::Subnet Perl 模块会这样做。我给出的那个链接有一个例子。如果你不想使用 CPAN 来获取模块,Debian 和 Ubuntu 都有一个 libnet-subnets-perl 包。

于 2009-06-07T17:35:44.830 回答