Ok, acabei de encontrar uma maneira simples. Você acabou de colocar este link no seu navegador, onde [ASXXX] é um certo AS e um número como este < href="http://bgp.he.net/AS714#_prefixes"> link .
Eu quero saber quais intervalos de IP estão pertencendo, por exemplo, ao AS714.
Como obtenho esta informação?
Eu sei como fazer o caminho inverso, o que é fácil com whois. Mas o outro jeito não parece ser assim tão fácil.
Eles estão listados online com detalhes relacionados no link (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
Para qualquer um que encontre isso - eu realmente gostei da resposta de Ben Dowlings. No entanto, de acordo com:
link
Existe uma maneira diferente que também produz resultados muito diferentes ! Eu estava testando um IP do facebook que não aparecia no Bens '| resultados da cabeça. De acordo com o link acima, a maneira correta de consultar endereços IP4 seria:
whois -h whois.radb.net '!gas714'
Igualmente legal é o fato de que agora você pode encontrar todos os endereços IP6 com:
whois -h whois.radb.net '!6as714'
Como eu disse - quando eu corri isso para o ASN do facebook eu encontrei o meu endereço IP em falta.
Atualização posterior Infelizmente Radb.net não distribui os dados corretos !! Tente ASN 19281 por exemplo e você verá os resultados dados, mas se você simplesmente whois radb.net sem parâmetros, ele dirá Nenhum registro encontrado. Não parece IMHO suficientemente preciso.
Descobri que você não pode realmente automatizar as consultas ao bgp.he.net, continuei obtendo 403 respostas e, quando falsifiquei um agente de usuário, ele tentou verificar se eu era realmente um navegador real. Eu meio que falhei em tudo com o bgp.he.net (mesmo contatando o site).
O que DID funcionou para mim foi consultar o link , como Ben Dowling disse em outra resposta.
Eu fiz um script python para obter cada bloco 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 o curl com ipinfo.io. Apenas tente ser educado e não faça consultas absurdamente grandes aos servidores.
Tags internet networking ip provider