Вопрос или проблема
Я пытаюсь построить сервис блокировки по GeoIP. У меня есть данные о IP-адресах, выделенных RIR странам. Сейчас я ищу IP-адреса, выделенные автономным системам RIR. Где я могу найти такие данные, желательно в виде файла в любом формате, а не в виде данных, представленных на веб-сайте? Мне нужно получить эту ссылку программно и регулярно обновлять эти правила.
Также мне хотелось бы узнать, какие из автономных систем, которым были назначены IP-адреса RIR, на самом деле являются провайдерами интернет-услуг. Организация, достаточно крупная, чтобы запросить ASN напрямую у RIR, вряд ли будет источником вредоносного трафика, но не то же самое можно сказать о конечных пользователях любого ISP.
Я думаю, в дополнение к черному списку стран, я могу также навсегда внести в белый список все IP-адреса, выделенные ASN на уровне RIR.
Ответ или решение
Для создания сервиса блокировки на основе GeoIP на основе ваших требований, вам необходимо получить данные о распределении IP-адресов автономным системам (AS) от Региональных Интернет-Регистраторов (RIR). Вот шаги и ресурсы, которые помогут вам в этом:
1. Данные о распределении IP-адресов:
Конкретно для получения информации о распределении IP-адресов по автономным системам вы можете использовать следующие ресурсы:
- WHOIS-запросы: Используйте WHOIS для получения информации о блоках IP, распределенных конкретному ASN. Это может быть сделано программно с помощью библиотек для вашего языка программирования (например,
whois
в Python). - Ресурсы RIR:
- ARIN (North America): arin.net
- RIPE NCC (Europe): ripe.net
- APNIC (Asia Pacific): apnic.net
- LACNIC (Latin America): lacnic.net
- AFRINIC (Africa): afrinic.net
Некоторые RIR предоставляют данные в виде файлов или через API. Например, вы можете использовать API RIPE для получения информации о конкретных ASN и их IP-адресах.
2. Форматы и частота обновления:
- Файлы: Например, RIPE NCC предоставляет данные в формате CSV, которые можно загружать и обрабатывать. В большинстве случаев, файлы можно обновлять по расписанию (например, раз в неделю).
- API: Некоторые RIR предлагают API для программного доступа к информации о IP-адресах, в том числе ассоциациях между IP-адресами и ASN. Вы можете настроить регулярные запросы к этим API и хранить результаты.
3. Определение ISPs:
Чтобы определить, какие ASN являются интернет-провайдерами, вы можете:
- Использовать базы данных, такие как CIDR Report или Db-IP, которые предлагают информацию о типах организаций, ассоциированных с ASN (например, есть ли у них статус ISP).
- Просматривать данные в WHOIS о конкретных ASN, чтобы проверить, например, обозначение "ISP" или другую информацию о предоставляемых ими услугах.
4. Создание черных и белых списков:
- Черный список: Список стран можно использовать для блокировки, добавляя IP-адреса из стран, которые вы хотите исключить.
- Белый список: Ваша идея о том, чтобы добавлять все IP-адреса, выделенные ASN, которые вы установили как надежные, вполне осуществима. Это может включать автоматизированный процесс анализа таких ASN на предмет их статуса и типа (например, ISP), и добавление IP-адресов в белый список.
Пример простого Python-скрипта для работы с WHOIS:
import whois
def get_asn_ip_ranges(asn):
# Получение данных о ASN
info = whois.whois(asn)
return info
# Пример использования
asn = 'AS12345' # Замените на необходимый ASN
ip_ranges = get_asn_ip_ranges(asn)
print(ip_ranges)
Заключение:
Следуя вышеизложенным шагам, вы сможете создать эффективный сервис блокировки на основе GeoIP. Регулярное обновление данных через API или автоматизированные скрипты позволит поддерживать актуальность ваших блокировок и белых списков. Не забудьте следить за изменениями в IP-распределении, поскольку данные могут обновляться.