Как разрешить IP-адрес организации (с кэшированием) - PullRequest
4 голосов
/ 14 октября 2010

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 28 мая 2012

Я думаю, что нашел лучший подход к этой проблеме.Я ошибался, полагая, что обратный 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 голос
/ 30 августа 2014

Мой сервис 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."
}

Вы можете получить только это поле, добавив / org к URL:

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

Добавление собственного кэширования на стороне клиента не должно быть слишком сложным. Подробнее об API вы можете узнать на http://ipinfo.io/developers.

1 голос
/ 14 октября 2010

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

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

0 голосов
/ 21 октября 2010

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

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

Год назад я запустил проект по созданию чистого рубинового клиента и парсера . Библиотека с открытым исходным кодом, поэтому не стесняйтесь ее раскошелиться и внести свой вклад.

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

...