Quero saber quais intervalos de IP pertencem, por exemplo, ao AS714.
Como obtenho essas informações?
Eu sei fazer o caminho inverso, o que é fácil com whois. Mas o outro caminho não parece tão fácil.
Quero saber quais intervalos de IP pertencem, por exemplo, ao AS714.
Como obtenho essas informações?
Eu sei fazer o caminho inverso, o que é fácil com whois. Mas o outro caminho não parece tão fácil.
Respostas:
Eles estão listados on-line com detalhes relacionados em http://ipinfo.io/AS714 (substitua o ASN para obter os detalhes equivalentes para qualquer outro ASN).
Se, em vez de procurá-los, você preferir pegá-los programaticamente, poderá usar o servidor whois do RADb:
$ 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
Ok, acabei de encontrar uma maneira simples. Você acabou de colocar este http://bgp.he.net/[ASXXXorgeous#_prefixes no seu navegador, onde [ASXXX] é um AS e um número como este http://bgp.he.net/AS714#_prefixes .
Para quem encontrar isso, gostei muito da resposta de Ben Dowling . No entanto, de acordo com:
http://www.radb.net/support/query2.php
Existe uma maneira diferente que também produz resultados muito diferentes ! Eu estava testando um IP do Facebook que não apareceu na Bens '| resultados principais. De acordo com o link acima, a maneira correta de consultar endereços IP4 seria:
whois -h whois.radb.net '!gas714'
Igualmente agradável é o fato de agora você encontrar todos os endereços IP6 com:
whois -h whois.radb.net '!6as714'
Como eu disse - quando executei isso no Facebook ASN, encontrei meu endereço IP ausente.
Atualização posterior
Infelizmente o Radb.net não fornece os dados corretos !! Tente, ASN 19281
por exemplo, e você verá os resultados apresentados, mas se você simplesmente usar o radb.net sem parâmetros, será exibido "Nenhum registro encontrado". Não parece preciso o suficiente IMHO.
whois -h whois.radb.net -- '!6as32934'
que será "cortada" com uma nova linha no meio dos endereços
echo '!6as32934'|nc whois.radb.net 43
Descobri que você não pode realmente automatizar consultas para o bgp.he.net, recebi 403 respostas e, quando falsifiquei um agente, ele tentou verificar se eu era realmente um navegador de verdade. Eu meio que falhei em tudo com o bgp.he.net (mesmo entrando em contato com o site).
O que DID funcionou para mim foi consultar http://ipinfo.io, como Ben Dowling disse em outra resposta.
Eu fiz um script python para obter todos os blocos de IP por ASN. Eu tinha uma lista de todos os números AS em um arquivo CSV. Aqui está:
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'
Dito isto, você também pode usar curl com ipinfo.io. Apenas tente ser educado e não faça consultas absurdamente grandes aos servidores.