Bagaimana cara mengetahui semua rentang IP milik AS tertentu?

12

Saya ingin tahu apa yang termasuk dalam rentang IP misalnya untuk AS714.

Bagaimana saya mendapatkan informasi ini?

Saya tahu bagaimana melakukan sebaliknya, yang mudah dengan whois. Tapi cara lain sepertinya tidak semudah itu.

JohnnyFromBF
sumber
Apakah Anda ingin rentang alamat IP yang berasal dari AS ini? (Pelanggan langsung yang tidak memiliki AS) Bagaimana dengan rentang alamat IP yang hanya dapat dijangkau melalui AS ini? (Pelanggan yang memiliki AS sendiri.) Bagaimana dengan rentang alamat IP yang dapat dijangkau melalui AS ini, tetapi juga AS penyedia lainnya? (Pelanggan multihomed.)
David Schwartz
1
Tujuannya adalah untuk mengetahui semua rentang IP yang dimiliki penyedia saya. Saya mendapat info ini dengan mengunjungi bgp.potaroo.net/as1221/asnames.txt untuk mengetahui nomor AS dan ripe.net/data-tools/stats/ris/routing-information-service untuk mendapatkan semua rentang IP melalui tab awalan. Apakah Anda tahu kemungkinan lain?
JohnnyFromBF

Jawaban:

13

Mereka terdaftar online dengan detail terkait di http://ipinfo.io/AS714 (ganti ASN untuk mendapatkan detail yang setara untuk ASN lainnya).

Jika alih-alih menjelajahinya, Anda lebih suka mengambilnya secara terprogram, Anda dapat menggunakan 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
Ben Dowling
sumber
1
Terima kasih atas jawaban ini. Sekarang saya dapat membuat daftar pemblokiran SMTP untuk penyedia hosting yang kasar dengan mudah.
Jari Turkia
Sebagai referensi, ini pendaftar rute lain harus bekerja juga.
JakeGould
1

Untuk siapa pun yang menemukan ini - saya sangat suka Jawaban Ben Dowling . Namun menurut:

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

Ada cara berbeda yang juga menghasilkan sangat berbeda hasil! Saya sedang menguji IP facebook yang tidak muncul di Bens '| hasil kepala. Menurut tautan di atas cara yang benar untuk menanyakan alamat IP4 adalah:

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

Sama bagusnya dengan kenyataan sekarang Anda dapat menemukan semua alamat IP6 dengan:

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

Seperti yang saya katakan - ketika saya menjalankan ini untuk ASN Facebook saya menemukan alamat IP saya yang hilang.

Pembaruan selanjutnya

Sayangnya Radb.net tidak memberikan data yang benar !! Mencoba ASN 19281 misalnya dan Anda akan melihat hasil yang diberikan tetapi jika Anda hanya whois radb.net tanpa parameter itu akan mengatakan "Tidak ada catatan yang ditemukan." Tampaknya tidak cukup akurat IMHO.

Antony
sumber
Metode ini memang memiliki beberapa masalah dengan daftar panjang, seperti Facebook. whois -h whois.radb.net -- '!6as32934' yang akan "terpotong" dengan baris baru di tengah alamat
Hvisage
yang berarti Anda sebaiknya menggunakan nc, seperti pada: echo '!6as32934'|nc whois.radb.net 43
Hvisage
0

Saya menemukan bahwa Anda tidak dapat benar-benar mengotomatiskan permintaan ke bgp.he.net, saya terus mendapatkan 403 tanggapan, dan kemudian ketika saya memalsukan agen pengguna, itu mencoba memverifikasi bahwa saya memang peramban yang sebenarnya. Saya agak gagal dalam segala hal dengan bgp.he.net (bahkan menghubungi situs).

Apa yang DID bekerja untuk saya, adalah melakukan query http://ipinfo.io seperti yang dikatakan Ben Dowling dalam jawaban lain.

Saya melakukan skrip python untuk mendapatkan setiap blok IP per ASN. Saya memiliki daftar setiap nomor AS dalam file csv. ini dia:

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'

Yang mengatakan, Anda juga dapat menggunakan ikal dengan ipinfo.io. Coba saja untuk bersikap sopan dan jangan membuat pertanyaan besar ke server.

Tomas Wolf
sumber