给定IP地址,如何找到它所属的CIDR范围?

时间:2017-03-15 22:24:28

标签: .htaccess perl ip-address whois cidr

我正在研究如何自动更新.htaccess以阻止已经进入并试图入侵该网站的IP范围。

我已经手动执行了一段时间,提取IP地址,然后使用基于网络的whois实用程序找到它所在的范围,然后手动将范围添加到被阻止的IP列表中网站。这很痛苦。

现在我正在解析日志文件以找到使用Perl脚本的可疑条目尝试的IP地址,并且我想找到该IP地址所属的IP地址范围,并且可能会提取一些其他描述性信息我会很快告诉我这是否是我想阻止的范围。

我知道可以这样做,因为Web实用程序提供了这些信息。这是一个例子

Example from Whois site

我可以对它们运行gethostbyaddr,但这不是我需要的。

我已经看到一些whois模块有一些信息,但找不到IP地址所属范围的访问权限。我希望我可以使用一个模块来提取地址范围,以帮助我加快安全过程。

1 个答案:

答案 0 :(得分:3)

我建议您使用Net::Whois::Raw模块。它只返回一个文本块,您必须使用正则表达式模式来提取所需的信息

这是一个示例,显示您在示例中使用的相同地址的IP范围。只需打印$info即可查看整个内容

use strict;
use warnings 'all';
use feature 'say';

use Net::Whois::Raw;

my $info = whois('95.137.240.189');

say $info =~ /NetRange:\s*(.+)/;

输出

95.0.0.0 - 95.255.255.255