国家,ASN和IP的对应关系

如何获取国家,ASN和IP的对应关系?

简介

最近工作上有个需求:收集某个国家的IP信息,最好有国家-ASN-CIDR的对应关系。

说起IP相关的数据,首先想到的就是ipip.net,ipplus360.com,ipinfo.io,这3个厂商应该是IP情报领域最专业的了,但是他们的数据都是收费的;翻了翻他们的网站,有个收获,发现一个IPInfo的页面:https://ipinfo.io/countries。

这个页面按照国家对ASN进行了分类,ASN包含所属组织的名称,所以我写个爬虫就行了;但是由于网站有反爬机制,我又没有足够的代理,所以放弃了这个方案。

然后在收集资料的时候,发现了一个GitHub项目:https://github.com/gaoyifan/china-operator-ip,这个项目的思路不错,而且让我学到了新知识。

思路

AS在IXP进行路由交换,那么如何交换路由呢?答案是BGP。

BGP(Border Gateway Protocol/边界网站协议)用于在AS之间进行路由交换,路由器之间会互相发送路由数据;而俄勒冈大学(University of Oregon)正好有一个收集路由的项目University of Oregon Route Views Archive Project,该项目在全球有若干collector,用于获取BGP数据,然后将数据存档。我们利用BGP数据可以得到AS和CIDR的关系,https://bgp.potaroo.net/cidr/autnums.html这个网页上有AS和所属组织的对应关系,这样,我们通过这两个关系,最后就能得到国家,AS和CIDR之间的关系。

使用 Hugo 构建
主题 StackJimmy 设计