Làm thế nào để tìm ra tất cả các dải IP thuộc về một AS nhất định?


13

Tôi muốn biết phạm vi IP nào thuộc về AS714.

Làm thế nào để tôi có được thông tin này?

Tôi biết làm thế nào để làm điều ngược lại, đó là dễ dàng với whois. Nhưng cách khác dường như không dễ dàng.


Bạn có muốn dải địa chỉ IP bắt nguồn từ AS này không? (Khách hàng trực tiếp không có AS) Điều gì về phạm vi địa chỉ IP chỉ có thể truy cập thông qua AS này? (Khách hàng có AS riêng của họ.) Điều gì về phạm vi địa chỉ IP có thể truy cập thông qua AS này mà còn cả AS nhà cung cấp khác? (Khách hàng đa dạng.)
David Schwartz

1
Mục đích là để tìm ra tất cả các dải IP mà nhà cung cấp của tôi sở hữu. Tôi đã nhận được thông tin này bằng cách truy cập bgp.potaroo.net/as1221/asnames.txt để tìm ra số AS và ripe.net/data-tools/stats/ris/routing-inif-service để có được tất cả IP phạm vi thông qua tab tiền tố. Bạn có biết những khả năng khác?
JohnnyFromBF

Câu trả lời:


17

Chúng được liệt kê trực tuyến với các chi tiết liên quan tại http://ipinfo.io/AS714 (thay thế ASN để có được các chi tiết tương đương cho bất kỳ ASN nào khác).

Nếu thay vì duyệt chúng, bạn muốn lấy chúng theo chương trình, bạn có thể sử dụng máy chủ RADb whois:

$ 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
Cảm ơn bạn cho câu trả lời này. Bây giờ tôi có thể tạo danh sách chặn SMTP cho các nhà cung cấp dịch vụ lưu trữ lạm dụng một cách dễ dàng.
Jari Turkia

Để tham khảo, các đăng ký định tuyến khác cũng nên làm việc.
JakeGould


3

Đối với bất cứ ai khác tìm thấy điều này - tôi thực sự thích câu trả lời của Ben Dowling . Tuy nhiên theo:

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

Có một cách khác nhau cũng mang lại kết quả rất khác nhau ! Tôi đã kiểm tra IP facebook không xuất hiện trong Bens '| kết quả đầu. Theo liên kết trên, cách truy vấn chính xác cho các địa chỉ IP4 sẽ là:

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

Tương tự như vậy là thực tế bây giờ bạn có thể tìm thấy tất cả các địa chỉ IP6 với:

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

Như tôi nói - khi tôi chạy nó cho Facebook ASN, tôi đã tìm thấy địa chỉ IP bị thiếu của mình.

Cập nhật sau

Thật không may, Radb.net không đưa ra dữ liệu chính xác !! Hãy thử ASN 19281ví dụ và bạn sẽ thấy kết quả được đưa ra nhưng nếu bạn chỉ đơn giản là ai là radb.net không có tham số thì nó sẽ nói là Không có bản ghi nào được tìm thấy. Nó dường như không đủ chính xác IMHO.


Phương pháp này có một số rắc rối với danh sách dài, như Facebook tức là. whois -h whois.radb.net -- '!6as32934'được "cắt xén" với một dòng mới ở giữa các địa chỉ
Hvisage

có nghĩa là bạn nên sử dụng nc, như trong:echo '!6as32934'|nc whois.radb.net 43
Hvisage

1

Tôi thấy rằng bạn thực sự không thể tự động hóa các truy vấn đến bgp.he.net, tôi liên tục nhận được 403 phản hồi và sau đó khi tôi giả mạo một tác nhân người dùng, nó đã cố gắng xác minh rằng tôi thực sự là một trình duyệt thực sự. Tôi thất bại trong mọi thứ với bgp.he.net (thậm chí liên hệ với trang web).

Những gì DID làm việc cho tôi, là truy vấn http://ipinfo.io như Ben Dowling đã nói trong một câu trả lời khác.

Tôi đã thực hiện một kịch bản python để có được mọi khối IP trên mỗi ASN. Tôi đã có một danh sách mỗi số AS trong một tệp csv. đây là:

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'

Điều đó nói rằng, bạn cũng có thể sử dụng curl với ipinfo.io. Chỉ cần cố gắng lịch sự và không thực hiện các truy vấn lớn vô lý đến các máy chủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.