做网络相关工作的,可能需要了解PeeringDB这个网站(https://www.peeringdb.com), 这里有大部分公开注册的 ASN(Autonomous System Number) 以及他们相互直接做Peering的信息,这也是这个网站名字的由来。
据统计,目前该网站中注册的机构有将近25000家,自治网络超过26000个,涉及到的数据中心数量将近5000个。请注意,这是一个社区项目,并不完全保证数据的准确性,同时也并不是所有的信息这里都有,据网站介绍,估计全世界1/3 的ASN是在这里有注册的。
为了方便全世界的用户进行查询,这个网站还公开了一套API,你可以通过https://www.peeringdb.com/apidocs 查看所有的API定义。
我写了一个PowerShell的函数,让你可以一行命令下载所有最新的数据集。
function Get-PeeringDBdata {param([Parameter()][string]$path = "c:\temp\peeringdb")"fac", "net", "org", "ix", "ixfac", "ixlan", "ixpfx", "poc", "netfac", "netixlan" | ForEach-Object {$name = $_(Invoke-RestMethod -Method Get -Uri "https://www.peeringdb.com/api/$name" -Headers @{"Authorization" = "Api-Key 替换你的密钥" }).data | Export-Csv -Path "$path\$name.csv"}
}
只要运行 Get-PeeringDBdata 就可以在目标目录得到你要的数据集,而且是csv格式,可以很容易导入到其他的数据库系统。
例如我将其导入到kusto数据库中。
然后你可以做各种各样的分析,以及利用它来实现你需要的一些有意思的事情。