以快速的方式查找许多IP的子网

时间:2013-11-06 14:31:13

标签: php subnet cidr

我有一个巨大的表,其中包含其他信息和IP地址列。

我想对这些数据进行多次计算,但要将其归入IP所属的子网。目前我正在使用whois来获取IP子网这种方法的问题在于它需要永远,因为我在表中有几百万个不同的IP。 我已经通过查找未包含在任何已知子网中的IP来优化脚本,但仍然可以减慢速度。

有没有比使用whois更好,更快的方式来获取子网?

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案(有点hacky)是使用DOM脚本从ARIN提取信息。

例如,如果我转到http://whois.arin.net/rest/ip/128.61.29.153,它会向我提供有关分配给佐治亚理工学院的所有信息。

使用PHP Simple HTML DOM Parser,我可以这样做:

$html = file_get_html('http://whois.arin.net/rest/ip/128.61.29.153');
# Insert DOM parsing here - it is not trivial but it is definitely possible.

这也不是很快,但确实提供了另一种解决方案。