如何检查 IP 号码是否与 Perl 在同一子网中?
我可以使用NetAddr::IP吗?
你可以试试这个:
#!/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;
}
似乎Net::Subnet Perl 模块会这样做。我给出的那个链接有一个例子。如果你不想使用 CPAN 来获取模块,Debian 和 Ubuntu 都有一个 libnet-subnets-perl 包。