題 如何找出屬於某個AS的所有IP範圍?


我想知道例如AS714的IP範圍。

我如何獲得這些信息?

我知道怎麼做相反的方式,這很容易與whois。但另一種方式似乎並不那麼容易。


10
2018-03-28 09:39


起源


您想要源自此AS的IP地址範圍嗎? (沒有AS的直接客戶)只能通過此AS訪問的IP地址範圍如何? (擁有自己AS的客戶。)通過此AS可以訪問的IP地址範圍以及其他提供商AS可以獲得什麼? (多宿主客戶。) - David Schwartz
目的是找出我的提供商擁有的所有IP範圍。我通過訪問得到了這個信息 bgp.potaroo.net/as1221/asnames.txt 為了找出AS編號和 ripe.net/data-tools/stats/ris/routing-information-service 通過前綴選項卡獲取所有IP範圍。你知道其他的可能嗎? - JohnnyFromBF


答案:


好的,我剛剛發現了一個簡單的方法。你剛才這個 http://bgp.he.net/[ASXXX]#_prefixes 在您的瀏覽器中,[ASXXX]是某個AS和這樣的數字 http://bgp.he.net/AS714#_prefixes


12
2018-03-28 09:45





他們在網上列出相關詳細信息 http://ipinfo.io/AS714 (替換ASN以獲取任何其他ASN的等效詳細信息)。

如果不是瀏覽它們而是以編程方式獲取它們,您可以使用RADb whois服務器:

$ whois -h whois.radb.net -- '-i origin AS714' | grep -Eo "([0-9.]+){4}/[0-9]+" | head
17.108.0.0/16
17.106.0.0/15
17.102.0.0/16
17.207.0.0/16
17.216.0.0/16
17.250.48.0/24
17.252.65.0/24
192.35.50.0/24
17.148.0.0/14
17.86.0.0/17

11
2017-09-25 16:59



謝謝你的回答。現在,我可以輕鬆地為濫用託管服務提供商創建SMTP阻止列表。 - Jari Turkia


對於其他發現這一點的人 - 我真的很喜歡Ben Dowlings的回應。但是根據:

http://www.radb.net/support/query2.php

有一種不同的方式也可以產生 非常不一樣 結果!我正在測試一個沒有出現在Bens'|中的facebook IP頭部結果。根據上面的鏈接,查詢IP4地址的正確方法是:

whois -h whois.radb.net '!gas714'

同樣好的是,您現在可以找到所有IP6地址:

whois -h whois.radb.net '!6as714'

正如我所說 - 當我為facebook ASN運行時,我發現了我丟失的IP地址。

稍後更新 不幸的是,Radb.net沒有給出正確的數據!!以ASN 19281為例,您將看到給出的結果,但如果您只是沒有參數的whois radb.net,則會說沒有找到記錄。它看起來不夠準確恕我直言。


1
2017-11-18 10:29



這種方法確實存在一些長列表的麻煩,比如Facebook的ie。 whois -h whois.radb.net -- '!6as32934' 在地址中間用新行“剪切” - Hvisage
這意味著你應該使用nc,如: echo '!6as32934'|nc whois.radb.net 43 - Hvisage


我發現你無法真正自動查詢到bgp.he.net,我一直得到403響應,然後當我偽造用戶代理時,它試圖驗證我確實是一個真正的瀏覽器。 我在bgp.he.net(甚至聯繫網站)的一切都失敗了。

DID對我有用,就是查詢 http://ipinfo.io 正如本·道林在另一個答案中所說。

我做了一個python腳本來獲取每個ASN的每個IP塊。 我有一個csv文件中每個AS號的列表。這裡是:

import requests
from bs4 import BeautifulSoup
import re


url_base = 'http://ipinfo.io/'
as_base = 'AS'

output = open('ip_per_asn.csv', 'w')
with open('chilean_asn.csv') as f:
    lines = f.read().splitlines()
    for asn in lines:
        ASN = as_base + asn
        page = requests.get(url_base+ASN)
        html_doc = page.content
        soup = BeautifulSoup(html_doc, 'html.parser')
        for link in soup.find_all('a'):
            if asn in link.get('href'):
                auxstring = '/'+as_base+asn+'/'
                line = re.sub(auxstring, '', link.get('href'))
                printstring = asn+','+line+'\n'
                if 'AS' not in printstring:
                    output.write(printstring)
        print asn+'\n'

print 'script finished'

也就是說,你也可以使用curl和ipinfo.io。 只是嘗試禮貌,不要對服務器進行荒謬的大查詢。


0
2018-05-03 20:08