有没有办法选择托管服务提供商并获取他们分配给他们的所有 IP 地址?我试过 RIPE 数据库,但 a) 它只返回 250 个结果,并且 b) 它包含不一定适用的条目。我只是想知道是否有一种简单的方法可以找出答案。
答案1
您可以使用辐射剂量作为实现这一目标的工具。
首先,您需要找到提供商的自治系统编号(AS 编号)。为此,首先找到任何提供商的 IP 地址。在此示例中,我将使用知名提供商 Hetzner。
$ host www.hetzner.de
www.hetzner.de has address 78.46.133.14
www.hetzner.de has IPv6 address 2a01:4f8:d0a:2001::3
然后在 RADb 上查找该 IP 地址:
$ whois -h whois.radb.net 78.46.133.14 | grep ^origin
origin: AS24940
在这里,您应该仔细检查 AS 编号是否确实属于 Hetzner。许多小型托管服务提供商没有自己的 AS,只是大型网络的客户。如果上述操作返回两个或更多 AS 编号(这种情况不应该发生,但我见过一次),您也应该进行此项检查。
$ whois as24940 | grep ^descr
descr: Hetzner Online GmbH
因此,我们看到他们的 ASN 确实是 AS24940。现在我们执行更复杂的查询在 RADb 获取该 ASN 的所有已知路由。
$ whois -h whois.radb.net -- -i origin -T route AS24940 | grep ^route
route: 213.133.96.0/19
route: 213.239.192.0/18
route: 193.28.90.0/24
route: 193.110.6.0/23
route: 85.10.192.0/18
route: 193.223.77.0/24
route: 88.198.0.0/16
route: 78.46.0.0/15
route: 188.40.0.0/16
route: 178.63.0.0/16
route: 46.4.0.0/16
route: 91.220.49.0/24
route: 176.9.0.0/16
route: 194.42.180.0/22
route: 194.42.184.0/22
route: 176.102.168.0/21
route: 5.9.0.0/16
route: 194.145.226.0/24
route: 185.12.64.0/22
route: 144.76.0.0/16
route: 148.251.0.0/16
route: 136.243.0.0/16
route: 138.201.0.0/16
route: 193.25.170.0/23
route: 91.233.8.0/22
route: 185.50.120.0/23
route: 213.169.144.0/22
route: 197.242.84.0/22
route: 195.248.224.0/24
$ whois -h whois.radb.net -- -i origin -T route6 AS24940 | grep ^route
route6: 2a01:04f8::/29
将这些汇总起来留给读者作为练习。
请注意,这些示例使用 GNU jwhois,它通常随 Linux 系统一起发布。如果您有不同的 whois 客户端,您可能需要相应地调整命令行。