Как узнать все диапазоны IP-адресов, принадлежащих определенной AS?

21297
JohnnyFromBF

Я хочу знать, какие диапазоны IP-адресов относятся, например, к AS714.

Как я могу получить эту информацию?

Я знаю, как сделать обратный путь, что легко с whois. Но другой путь не кажется таким легким.

10
Хотите ли вы диапазоны IP-адресов, которые исходят из этой AS? (Прямые клиенты, у которых нет AS) Как насчет диапазонов IP-адресов, доступных только через эту AS? (Клиенты, которые имеют свою собственную AS). Как насчет диапазонов IP-адресов, доступных через эту AS, но также и другие AS провайдера? (Многосетевые клиенты.) David Schwartz 12 лет назад 0
Цель состояла в том, чтобы выяснить все диапазоны IP-адресов, которыми владеет мой провайдер. Я получил эту информацию, посетив http://bgp.potaroo.net/as1221/asnames.txt, чтобы узнать номер AS и http://www.ripe.net/data-tools/stats/ris/routing- информационный сервис для получения всех диапазонов IP-адресов через вкладку префиксов. Знаете ли вы другие возможности? JohnnyFromBF 12 лет назад 1

4 ответа на вопрос

12
JohnnyFromBF

Хорошо, я только что нашел один простой способ. Вы просто помещаете эти http://bgp.he.net/[ASXXX]#_prefixes в свой браузер, где [ASXXX] - это определенная AS и такой номер http://bgp.he.net/AS714#_prefixes .

11
Ben Dowling

Они перечислены онлайн с соответствующими деталями на http://ipinfo.io/AS714 (замените ASN, чтобы получить эквивалентные данные для любого другого ASN).

Если вместо того, чтобы просматривать их, вы предпочитаете получать их программно, вы можете использовать whois-сервер RADb:

$ whois -h whois.radb.net -- '-i origin AS714' | grep -Eo "([0-9.]+)/[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 
Спасибо за этот ответ. Теперь я могу легко создавать списки блокировки SMTP для провайдеров-нарушителей. Jari Turkia 6 лет назад 0
1
Antony

Для всех, кто находит это - мне действительно понравился ответ Бена Даулингса. Однако согласно:

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

Существует другой способ, который также дает очень разные результаты! Я тестировал IP-адрес Facebook, который не появился в Bens '| Главный результат. Согласно приведенной выше ссылке, правильный способ запроса IP-адресов будет следующим:

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

Столь же приятным является тот факт, что теперь вы можете найти все IP6-адреса с:

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

Как я уже сказал - когда я запустил это для ASN facebook, я нашел свой пропавший IP-адрес.

Дальнейшее обновление К сожалению Radb.net не выдает правильные данные !! Попробуйте, например, ASN 19281, и вы увидите результаты, но если вы просто whois radb.net без параметров, он скажет, что записи не найдены. Это не кажется достаточно точным ИМХО.

Этот метод имеет некоторые проблемы с длинными списками, например, Facebook. `whois -h whois.radb.net - '! 6as32934'`, который« обрезается »с новой строкой в ​​середине адресов Hvisage 6 лет назад 0
это означает, что вы должны использовать nc, например: `echo '! 6as32934' | nc whois.radb.net 43` Hvisage 6 лет назад 0
0
Tomas Wolf

I found that you can't really automate queries to bgp.he.net, I kept getting 403 responses, and then when I faked a user agent, it tried to verify that I was indeed a real browser. I kind of failed in everything with bgp.he.net (even contacting the site).

What DID work for me, was to query http://ipinfo.io as Ben Dowling said in another answer.

I did a python script to get every IP block per ASN. I had a list of every AS number in a csv file. here it is:

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' 

That said, you can also use curl with ipinfo.io. Just try to be polite and don't make absurdly large queries to the servers.