我需要使用PHP,也许使用一些pear包或php内部函数。我怎么能这样做?
我知道我需要gethostbyname()来进行主机名检查,但我还需要这个提供程序的ip范围。 例: ip:5.7.8.9 主持人:美国提供商 ip范围5.7.8.0-5.7.9.0
用php可以吗?
答案 0 :(得分:2)
如果没有访问BGP,就无法准确查看IP范围,但如果您信任ISP提供正确的信息,则可以从whois获取。使用shell_exec或类似命令调用命令行whois client。
我建议你查看这些标签:
可能还有更多。然而,Whois并不总是值得信赖。它是一个没有定义标准格式的文本数据库,因此您可能无法获得可用的答案,并且您并不总是知道要查找的内容。
正如我所说,最值得信赖的解决方案是获得真正的BGP访问,以便您可以检查实际的Internet路由。然而,这是相当高级的,所以可能有一些Web服务可用于路由查找?
修改强> 我实际上找到了这个项目,它为BGP查询提供了一个API:http://www.routeviews.org/
TXT有两个子域 routeviews.org,asn和 ASPATH。 asn.routeviews.org地图 (解析)反转的IPv4地址或 前缀(例如:128.223 - > 223.128.asn.routeviews.org)到原始AS(以及前缀和前缀 最长路线的长度) route-views2.routeviews.org。 aspath.routeviews.org是一样的 想法,但解决了完整的AS 路径。
这可以用于通过简单的DNS查询获取IP的子网。在子网中使用它可以轻松计算IP范围(您可能已经知道,该范围只是子网的另一种表示法)。