10

有没有简单的方法可以将给定的 IP 地址映射到相应的 ASN 号?例如:

ping 找出 IP 地址:

$ ping www.switch.ch
PING aslan.switch.ch (130.59.108.36) 56(84) bytes of data.

whois 查找 ASN 号:

$ whois -h whois.cymru.com -v 130.59.108.36
Warning: RIPE flags used with a traditional server.
AS      | IP               | BGP Prefix          | CC | Registry | Allocated  | AS Name
559     | 130.59.108.36    | 130.59.0.0/16       | CH | ripencc  | 1993-09-22 | SWITCH SWITCH, Swiss Education and Research Network

所以这种情况下的映射是130.59.108.36(IP)-> 559(ASN)。简单的。但是,如果我想使用来自区域互联网注册机构的公开可用信息创建自己的本地地图服务,该怎么办?所以,对于上面的例子,就是这个列表,对吧?

ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest

并且找到匹配的条目也不是问题:

ripencc|CH|ipv4|130.59.0.0|65536|19930922|assigned

但是我如何从上面的行中获取 ASN 号?这两个信息是如何联系在一起的?

ripencc|EU|asn|559|1|19930901|allocated

提前感谢您的回复!

4

3 回答 3

11

我在这里解释如何做到这一点:https ://www.quaxio.com/bgp/ (以前在https://alokmenghrajani.github.io/bgp/

它基本上涉及从路由器下载转储,然后使用有效的数据表示将 IP 地址映射到网络掩码。

于 2013-04-21T20:40:20.250 回答
3

我建议根据从实际 BGP 扬声器收集的 MRT 转储来执行此操作。

有这个 python 库 fe 可以用来轻松解析 MRT 转储:http ://code.google.com/p/pyasn/

如果您无法运行自己的 BGP 扬声器,您可以在http://archive.routeviews.org/下载转储文件

确保你也检查他们的其他东西。它们还提供 DNS 区域文件,使您能够使用标准 DNS 服务器(例如 Bind 或 NSD)进行此类查找:http: //archive.routeviews.org/dnszones/

我希望这能让你开始......

于 2012-11-21T03:31:40.093 回答
0

我制作了一个将 ASN 附加到 HTTP 日志行的工具。我解释了如何从 RIPE 原始数据构建数据库并将其与二进制搜索一起使用。此外,C 代码已准备好使用。在常规虚拟实例上几秒钟内进行 160 万次查找:

https://github.com/psvz/tirexASN

于 2016-04-14T22:16:42.870 回答