2014-12-31 3 views
4

Кто-нибудь знает API/Script, который дает мне CIDR для сети IP-адреса? Не IP-диапазон до CIDR!IP to CIDR/IP-диапазон

Фон: мошенник регистрируется на моем сайте и использует прокси-сервер или веб-хостер, чтобы скрыть свой IP-адрес или подделать его ip-позицию. Теперь нет смысла просто блокировать его IP-адрес. Я хочу заблокировать всю сеть хостера для регистрации. Поэтому мне нужно сделать ip whois, чтобы получить CIDR сети. Я хочу автоматизировать его.

ответ

8

IP-адреса выдаются конечным пользователям LIR (локальный интернет-реестр). LIRs обязаны регистрировать различные данные для любого назначенного адресного пространства в соответствующих базах данных RIR (Региональный интернет-реестр). Существует 5 RIR (ARIN, RIPE NCC, APNIC, LACNIC и AfriNIC), отвечающих за разные части мира. Насколько я знаю, все они предоставляют API RESTful, которые вы можете использовать для получения необходимой информации.

Например, если IP из Европы, вы можете использовать RIPE API для поиска inetnum или маршрутных объекты, которые связаны с каким-то IP-адресом:

http://rest.db.ripe.net/search?query-string=194.79.41.40

Вы получите несколько объектов внутри whois-resource и тот, который наиболее интересен для вас является route объект:

<object type="route"> 
<link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/route/194.79.40.0/22AS35796"/> 
<source id="ripe"/> 
<primary-key> 
    <attribute name="route" value="194.79.40.0/22"/> 
    <attribute name="origin" value="AS35796"/> 
</primary-key> 
<attributes> 
    <attribute name="route" value="194.79.40.0/22"/> 
    <attribute name="descr" value="NBS"/> 
    <attribute name="origin" value="AS35796" referenced-type="aut-num"> 
    <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/aut-num/AS35796"/> 
    </attribute> 
    <attribute name="mnt-by" value="NBS-MNT" referenced-type="mntner"> 
    <link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/mntner/NBS-MNT"/> 
    </attribute><attribute name="source" value="RIPE" comment="Filtered"/> 
</attributes> 
</object> 

Имейте в виду, что этот объект маршрут может быть резюме сфера, которая больше, то один пользователь на самом деле принадлежит, но это лучшее, что вы можете получить.

Проверьте следующие ссылки на другие РИР:

  • AfriNIC (Африка): afrinic.net
  • APNIC (Asia Pacific): apnic.net
  • АРИН (Северная Америка): arin.net
  • LACNIC (Латинская Америка и Карибский бассейн): lacnic.net

Редактировать: Я должен был упомянуть об этом в своем первоначальном ответе, но я был отвлечен частью API. За всем этим на самом деле это протокол whois, который очень прост в реализации, особенно если вы имеете дело с языками программирования, где разбор json или xml требует некоторой работы.

Протокол Whois использует TCP-порт 43 и после подключения к серверу вам нужно только отправить ключ поиска (в вашем случае IP-адрес). Вы получите ответ, и сервер завершит соединение. Вот и все. Вы можете попробовать telnet whois.ripe.net 43 и после открытия соединения просто отправьте 194.79.41.40 или другой IP-адрес, выданный RIPE NCC.

Одна из проблем с whois заключается в том, что нет центральной базы данных, которую вы можете запросить и всегда получите результат, вместо этого вам нужно запросить RIR, который выдал конкретный IP-адрес. Но даже если вы пропустили правильный RIR и запрос (например) whois.iana.org для адреса, который выдается RIPE NCC, вы получите ответ с правильным сервером whois и организацией (RIR), которая выдала IP. Таким образом, вы можете проверить статистику геолокации для своих пользователей и назначить приоритет одному серверу whois, который, скорее всего, даст вам результат или воспользуется ответом, чтобы выбрать второй сервер для запроса.

Другая проблема заключается в том, что ответы не стандартизованы, поэтому вам нужно будет сделать парсер ответов для каждого из 5 серверов whois.

+0

Центральная база данных в основном https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xhtml, так как это IANA, которая сначала выделяет блоки для RIR (такие же существуют для IPv6-адресов курс). Но на нем нет сервера whois. –

+0

Также теперь все изменилось с помощью RDAP, поскольку у вас есть: http://data.iana.org/rdap/ipv4.json и http://data.iana.org/rdap/ipv6.json; Клиенты RDAP могут использовать это для автоматического поиска соответствующего RIR RDAP-сервера. –