Wie finde ich alle IP-Bereiche heraus, die zu einem bestimmten AS gehören?

13

Ich möchte wissen, welche IP-Bereiche zum Beispiel zum AS714 gehören.

Wie bekomme ich diese Informationen?

Ich weiß, wie man den umgekehrten Weg macht, was mit whois einfach ist. Aber der andere Weg scheint nicht so einfach zu sein.

JohnnyFromBF
quelle
Möchten Sie IP-Adressbereiche, die von diesem AS stammen? (Direktkunden ohne AS) Wie sieht es mit IP-Adressbereichen aus, die nur über diese AS erreichbar sind? (Kunden mit eigenem AS.) Wie steht es mit IP-Adressbereichen, die über diesen AS erreichbar sind, aber auch mit AS anderer Anbieter? (Multihomed Kunden.)
David Schwartz
1
Ziel war es, alle IP-Bereiche meines Providers herauszufinden. Ich habe diese Information erhalten, indem ich bgp.potaroo.net/as1221/asnames.txt besuchte , um die AS-Nummer herauszufinden, und mature.net/data-tools/stats/ris/routing-information-service , um alle IP zu erhalten reicht durch die Registerkarte Präfixe. Kennen Sie andere Möglichkeiten?
JohnnyFromBF

Antworten:

17

Sie sind online unter http://ipinfo.io/AS714 mit zugehörigen Details aufgeführt (ersetzen Sie den Lieferavis, um die entsprechenden Details für jeden anderen Lieferavis zu erhalten).

Wenn Sie sie nicht durchsuchen, sondern programmgesteuert suchen möchten, können Sie den RADb whois-Server verwenden:

$ 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
Ben Dowling
quelle
1
Vielen Dank für diese Antwort. Jetzt kann ich problemlos SMTP-Sperrlisten für missbräuchliche Hosting-Anbieter erstellen.
Jari Turkia
Zu Referenzzwecken sollten diese anderen Routing-Register ebenfalls funktionieren.
JakeGould
3

Für alle anderen, die das finden - ich mochte die Antwort von Ben Dowling wirklich . Jedoch nach:

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

Es gibt einen anderen Weg, der auch sehr unterschiedliche Ergebnisse liefert ! Ich habe eine Facebook-IP getestet, die in Bens '| nicht aufgetaucht ist Kopf Ergebnisse. Laut dem obigen Link wäre die korrekte Art der Abfrage von IP4-Adressen:

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

Ebenso schön ist die Tatsache, dass Sie jetzt alle IP6-Adressen finden können mit:

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

Wie gesagt - als ich dies für den Facebook-ASN ausgeführt habe, habe ich meine fehlende IP-Adresse gefunden.

Späteres Update

Leider gibt Radb.net nicht die korrekten Daten aus !! ASN 19281Wenn Sie zum Beispiel versuchen , werden die Ergebnisse angezeigt, aber wenn Sie einfach whois radb.net ohne Parameter angeben, wird "No records found" (Keine Datensätze gefunden) angezeigt. Dies scheint meiner Meinung nach nicht genau genug zu sein.

Antonius
quelle
Diese Methode hat einige Probleme mit langen Listen, wie z. B. Facebook. whois -h whois.radb.net -- '!6as32934'das wird mit einer neuen Zeile in der Mitte der Adressen "abgeschnitten"
Hvisage
was bedeutet, dass Sie lieber nc verwenden sollten, wie in:echo '!6as32934'|nc whois.radb.net 43
Hvisage
1

Ich stellte fest, dass man Anfragen an bgp.he.net nicht wirklich automatisieren kann, erhielt immer wieder 403 Antworten und als ich einen Benutzeragenten vortäuschte, versuchte er zu überprüfen, ob ich tatsächlich ein echter Browser war. Ich habe mit bgp.he.net irgendwie alles versagt (sogar die Website kontaktiert).

Was hat für mich funktioniert, war die Abfrage von http://ipinfo.io, wie Ben Dowling in einer anderen Antwort sagte.

Ich habe ein Python-Skript erstellt, um jeden IP-Block pro ASN abzurufen. Ich hatte eine Liste aller AS-Nummern in einer CSV-Datei. hier ist es:

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'

Das heißt, Sie können curl auch mit ipinfo.io verwenden. Seien Sie einfach höflich und stellen Sie keine absurd großen Anfragen an die Server.

Tomas Wolf
quelle