Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在perl中检查ip地址是否在特定范围内?_Perl_Ip_Cgi_Ip Address - Fatal编程技术网

如何在perl中检查ip地址是否在特定范围内?

如何在perl中检查ip地址是否在特定范围内?,perl,ip,cgi,ip-address,Perl,Ip,Cgi,Ip Address,我正在用perl编写一个CGI脚本。 如何检查ip地址(例如124.21.23.5)是否在100.0.0.0-200.79.255.255范围内 我获取ip地址的方式是: my $ip = $ENV{'REMOTE_ADDR'}; 使用和重叠方法: use strict; use warnings; use Net::IP; my $range = Net::IP->new('100.0.0.0 - 200.79.255.255') or die Net::IP::Error

我正在用perl编写一个CGI脚本。 如何检查ip地址(例如124.21.23.5)是否在100.0.0.0-200.79.255.255范围内

我获取ip地址的方式是:

    my $ip = $ENV{'REMOTE_ADDR'};
使用和
重叠
方法:

use strict;
use warnings;

use Net::IP;

my $range = Net::IP->new('100.0.0.0 - 200.79.255.255') or die Net::IP::Error();

while (<DATA>) {
    chomp;
    my $ip = Net::IP->new($_) or die Net::IP::Error();
    my $match =  $range->overlaps($ip) ? "(match)" : "";
    print "$_ $match\n";
}

__DATA__
10.0.0.1
99.99.99.99
100.0.0.1
124.21.23.5
200.79.255.1
200.80.1.1

您应该研究如何使用.Net::IP。
10.0.0.1
99.99.99.99
100.0.0.1 (match)
124.21.23.5 (match)
200.79.255.1 (match)
200.80.1.1