Come scoprire tutti gli intervalli IP appartenenti a un determinato AS?


13

Voglio sapere quali intervalli IP appartengono ad esempio all'AS714.

Come ottengo queste informazioni?

So come fare al contrario, il che è facile con whois. Ma l'altro modo non sembra essere così facile.


Vuoi intervalli di indirizzi IP che hanno origine su questo AS? (Clienti diretti che non hanno un AS) Che dire degli intervalli di indirizzi IP raggiungibili solo attraverso questo AS? (Clienti che hanno il proprio AS.) Che dire degli intervalli di indirizzi IP raggiungibili tramite questo AS ma anche con altri AS provider? (Clienti multihomed.)
David Schwartz,

1
Lo scopo era scoprire tutti gli intervalli IP di proprietà del mio provider. Ho avuto queste informazioni visitando bgp.potaroo.net/as1221/asnames.txt per scoprire il numero AS e ripe.net/data-tools/stats/ris/routing-information-service per ottenere tutto l'IP varia attraverso la scheda prefissi. Conosci altre possibilità?
JohnnyFromBF

Risposte:


17

Sono elencati online con i relativi dettagli su http://ipinfo.io/AS714 (sostituire l'ASN per ottenere i dettagli equivalenti per qualsiasi altro ASN).

Se invece di sfogliarli preferisci afferrarli a livello di codice puoi utilizzare il server whois 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

1
Grazie per questa risposta Ora posso creare facilmente elenchi di blocco SMTP per provider di hosting offensivo.
Jari Turkia,

Per riferimento, anche questi altri registri di routing dovrebbero funzionare.
Jake:


3

Per chiunque lo trovi, mi è piaciuta molto la risposta di Ben Dowling . Tuttavia secondo:

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

C'è un modo diverso che produce anche risultati molto diversi ! Stavo testando un IP di Facebook che non è emerso in Bens '| risultati della testa. Secondo il link sopra, il modo corretto di interrogare gli indirizzi IP4 sarebbe:

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

Altrettanto bello è il fatto che ora puoi trovare tutti gli indirizzi IP6 con:

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

Come ho detto - quando l'ho eseguito per l'ASN di Facebook ho trovato il mio indirizzo IP mancante.

Aggiornamento successivo

Sfortunatamente Radb.net non fornisce i dati corretti !! Prova ASN 19281ad esempio e vedrai i risultati forniti, ma se semplicemente whois radb.net senza parametri dirà "Nessun record trovato". Non sembra abbastanza accurato IMHO.


Questo metodo presenta alcuni problemi con elenchi lunghi, come ad esempio Facebook. whois -h whois.radb.net -- '!6as32934'che viene "troncato" con una nuova riga nel mezzo degli indirizzi
Hvisage,

il che significa che dovresti piuttosto usare nc, come in:echo '!6as32934'|nc whois.radb.net 43
Hvisage,

1

Ho scoperto che non puoi davvero automatizzare le query su bgp.he.net, ho continuato a ricevere 403 risposte e poi, quando ho falsificato un agente utente, ho provato a verificare che ero davvero un vero browser. Ho quasi fallito in tutto con bgp.he.net (anche contattando il sito).

Quello che DID ha funzionato per me è stato interrogare http://ipinfo.io come ha detto Ben Dowling in un'altra risposta.

Ho realizzato uno script Python per ottenere ogni blocco IP per ASN. Avevo un elenco di tutti i numeri AS in un file CSV. Ecco qui:

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'

Detto questo, puoi anche usare curl con ipinfo.io. Cerca solo di essere educato e non fare domande assurdamente grandi ai server.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.