2010-10-14 3 views
4

Я хотел бы разрешить адреса IP (v4) для организаций-владельцев, из реестра распределения IP-адресов. Для этого я не хочу стать экспертом в протоколах и шаблонах whois или структуре самих реестров. Мне просто нужна функция, которая принимает IP-адрес (выделяется в любой точке мира) и возвращает короткую строку, такую ​​как «IBM Corporation». То же самое я найду, набрав «whois n.n.n.n» и увидев результат. Обратный DNS - это не то, что я хочу. Должно быть бесплатное программное обеспечение и работать в Linux.Как разрешить IP-адрес организации (с кешированием)

Невероятно для меня, я не могу найти это. Программа whois (на Debian) и другие ориентированные на пользователя интерфейсы дают мне результат для любого IP-адреса, но во всех разновидностях необработанных форматов. Я нашел библиотеки whois, которые анализируют результаты, но они, похоже, полагают, что я эксперт whois и знаю, какой реестр имеет записи для моего запроса. Я думаю, что штуки просто нужно объединить, но никто, кажется, не сделал этого. Я что-то пропустил, или это проще, чем я думаю?

В качестве бонуса я хотел бы сохранить кэш этих поисков. Кэш должен хранить сетевой диапазон для результатов whois, чтобы он возвращал хит для другого IP-адреса в той же сети. В идеале, кеш должен работать лучше, чем линейный поиск по мере его роста.

Цель? Я бы счел это невероятно полезным для анализа журналов сервера. Обратный DNS в основном бесполезен в эти дни, но мне все же хотелось бы узнать, кто ответственно за запросы.

+0

Оформить заказ https://ipdata.co это даст вам организацию, которой принадлежит IP-адрес, а также несколько других точек данных. – Jonathan

ответ

1

Существует не установленный формат для информации whois. Вам придется анализировать данные и делать догадки. Я предлагаю искать OrgName:, Organisation:, Organization:, и, вероятно, есть много других.

Если вы просто делаете это для своих сайтов, я рекомендую использовать пакет Analytics для выполнения этой работы для вас. Google Analytics отличная, но не анализирует журналы вашего веб-сервера. Вам нужно будет использовать что-то вроде веб-трендов.

+0

Мне стыдно, что нет усилий сообщества писать и собирать парсеры для разных форматов. :-(Моя потребность сложнее, чем простые веб-журналы, и я даже не знаю, как что-то вроде Web Trends будет интегрироваться с тем, что я делаю (не говоря уже о том, что у меня нет ни склонности, ни бюджета для коммерческого пакета.) Спасибо за идеи. – Andrew

+0

Тогда я рекомендую просто начать с парсинга самостоятельно. Я сомневаюсь, что список возможных форматов *, * * обширный. Выйдите один за другим, пока не охватите все форматы, которые вы можете найти. – Brad

0

Как правильно указал Брэд в своем ответе, нет стандарта, нет способа обнаружить одну и ту же информацию для всех ответов.

Вам необходимо создать один парсер для каждого формата ответа, и для этого требуется очень большое усилие.

Год назад я начал проект создания pure-ruby WHOIS client and parser. Библиотека с открытым исходным кодом, поэтому не стесняйтесь разворачивать ее и возвращать.

В настоящее время в нем представлено более 150 различных парсеров. Не все парсеры поддерживают информацию Организации, но библиотека имеет очень гибкую DSL, поэтому вы можете легко ее добавить.

+0

Great , Я проверю это! – Andrew

2

Я думаю, что нашел лучший подход к этой проблеме. Я ошибался, думая, что обратный DNS бесполезен: есть больше, чтобы изменить DNS, чем я знал! Например, учитывая IP-адрес 8.12.3.96, нет записи PTR для 96.3.12.8.in-addr.arpa:

host -t ptr 96.32.12.8.in-addr.arpa 
Host 96.32.12.8.in-addr.arpa not found: 3(NXDOMAIN) 

Но я только что узнал, что вы можете запросить записи делегирования для 3.12.8.in-addr.arpa:

host -t ns 32.12.8.in-addr.arpa 
32.12.8.in-addr.arpa name server dns1.textdrive.com. 
32.12.8.in-addr.arpa name server dns2.textdrive.com. 
32.12.8.in-addr.arpa name server dns3.textdrive.com. 
32.12.8.in-addr.arpa name server dns4.textdrive.com. 

Довольно познавательно! Мы можем искать общий суффикс и связывать его с доменом textdrive.com.

Я знаю это потому, что jdresolve делает это (с опцией --recursive). И он может кэшировать. Это, по-видимому, отличный инструмент для анализа сетевых журналов, с умным и инновационным способом решения «неразрешимых» IP-адресов. Он выполняет то же самое, что я пытался сделать с помощью WHOIS.

1

Моя служба http://ipinfo.io предлагает API возвращает имя компании, как орг поле:

$ curl http://ipinfo.io/198.252.206.16 
{ 
    "ip": "198.252.206.16", 
    "hostname": "stackoverflow.com", 
    "city": null, 
    "region": null, 
    "country": "US", 
    "loc": "38.0000,-97.0000", 
    "org": "AS25791 Stack Exchange, Inc." 
} 

Вы можете получить только, что поле, добавляя/орг к URL-адресу:

$ curl http://ipinfo.io/198.252.206.16/org 
AS25791 Stack Exchange, Inc. 

Добавление собственных клиентское кеширование не должно быть слишком сложным. Более подробную информацию об API вы можете узнать по адресу http://ipinfo.io/developers.

Смежные вопросы