做網絡相關工作的,可能需要了解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數據庫中。
然后你可以做各種各樣的分析,以及利用它來實現你需要的一些有意思的事情。