たとえばAS714に属するIP範囲を知りたい。
この情報を取得するにはどうすればよいですか?
私は逆の方法を知っています。これはwhoisで簡単です。しかし、他の方法はそれほど簡単ではないようです。
たとえばAS714に属するIP範囲を知りたい。
この情報を取得するにはどうすればよいですか?
私は逆の方法を知っています。これはwhoisで簡単です。しかし、他の方法はそれほど簡単ではないようです。
回答:
これらは、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
わかりました、1つの簡単な方法を見つけました。ブラウザにこのhttp://bgp.he.net/[ASXXX]#_prefixesを入力するだけです。[ASXXX]は特定のASであり、http: //bgp.he.net/AS714#_prefixesのような番号です。
これを見つけた他の人のために-私は本当にベン・ダウリングの答えが好きだった。ただし:
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を実行すると、「レコードが見つかりません」と表示されます。私見では十分に正確ではないようです。
whois -h whois.radb.net -- '!6as32934'
アドレスの途中で改行で「クリップ」される
echo '!6as32934'|nc whois.radb.net 43
bgp.he.netへのクエリを実際に自動化できないことを発見し、403の応答を取得し続け、ユーザーエージェントを偽装したときに、実際のブラウザであることを確認しようとしました。私はbgp.he.netですべてに失敗しました(サイトに連絡することさえ)。
私にとってDIDが機能するのは、Ben Dowlingが別の回答で述べたように、http://ipinfo.ioを照会することでした。
ASNごとにすべてのIPブロックを取得するためにPythonスクリプトを実行しました。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'
つまり、ipinfo.ioでcurlを使用することもできます。丁寧にしようとし、サーバーに不当に大きなクエリを実行しないでください。