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

时间:2009-06-07 17:22:52

标签: perl ip

如何检查IP号码是否与Perl位于同一子网中?我使用NetAddr::IP吗?

感谢。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:5)

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