Как определить, какой компании принадлежит IP-адрес?

Я пытаюсь программно определить компанию*, связанную с данным IP-адресом.

Моя первая догадка была такой:

  string hostname = Dns.GetHostEntry(IPAddress.Parse(ip)).HostName;

но это не сработает, если обратный DNS настроен неправильно, что происходит в 90% случаев.

Однако некоторые веб-сайты по-прежнему могут успешно определять компанию, связанную с конкретным IP-адресом, даже если обратный DNS не работает. Например, на этом сайте поле ISP Provider иногда содержит ценную информацию (например, название компании), даже если имя хоста не задано.

Как проще всего добиться того же с помощью .net?


Примечания :

  • Мне не нужно каноническое имя. т.е. MS или Microsoft оба в порядке.
  • Я ориентируюсь на крупные компании, которые, скорее всего, «владеют» своими диапазонами IP-адресов.
  • Я работаю в Windows, поэтому инструменты whois для Unix по умолчанию не установлены.

Изменить использование whois: иногда информация whois, связанная с IP-адресом, отсутствует


person Brann    schedule 23.06.2009    source источник
comment
Пример, который вы упомянули об отсутствии информации whois, связанной с IP-адресом, явно неверен. У 121.243.106.222 есть информация whois, это Tata (крупнейший интернет-провайдер в Индии). Поскольку он находится в Азии, вам нужно запрашивать whois-сервер APNIC, а не RIPE. (Или запросите ARIN, который перенаправит вас.) Да, whois сложен.   -  person bortzmeyer    schedule 27.06.2009
comment
Нет необходимости использовать инструменты unix whois, протокол whois настолько прост, что для его реализации на любом языке, более позднем, чем C, требуется две строки.   -  person bortzmeyer    schedule 02.07.2009


Ответы (5)


Вы можете установить инструмент командной строки whois для Windows от Microsoft

редактировать: тогда какую информацию вы ищете?

>whois bbc.co.uk
Domain name:
    bbc.co.uk

Registrant:
    British Broadcasting Corporation

Registrant type:
    UK Limited Company, (Company number: 000057)

Registrant's address:
    Research & Development
    Kingswood Warren
    Tadworth
    Surrey
    KT20 6NP
    United Kingdom

Registrar:
    British Broadcasting Corporation [Tag = BBC]
person Martin Beckett    schedule 23.06.2009
comment
К сожалению, он не предоставляет информацию, которую я ищу. - person Brann; 23.06.2009
comment
Можете ли вы предоставить подробную информацию, например пример IP-адреса? Помимо DNS и whois, НЕТ автоматического способа получить какую-либо информацию с IP-адреса. - person bortzmeyer; 27.06.2009

Вы можете выполнить поиск whois на веб-сайте https://ws.arin.net/whois и проанализировать из информации, которую вы ищете.

person heavyd    schedule 23.06.2009
comment
К сожалению, он не предоставляет информацию, которую я ищу - person Brann; 23.06.2009
comment
Однако именно так такая информация, вероятно, определяется путем выяснения того, кому принадлежат блоки IP-адресов (которые берутся из базы данных ARIN). Могут быть последовательные запросы whois. - person Joe; 23.06.2009

В основном я поддерживаю ответы "whois". Когда-то компаниям принадлежали целые блоки адресов, поэтому людям было довольно легко написать свой собственный «whois», но по мере того, как адресов IP (v4) становилось все меньше, это перестало быть легким. Я бы даже не подумал пробовать это сейчас. Используйте настоящий whois.

person T.E.D.    schedule 23.06.2009

Проверьте этот http://ws.arin.net/whois/, он должен предоставить необходимую информацию.

Вы можете попробовать запросить

http://ws.arin.net/whois/?queryinput={ipaddress} используя WebClient или WebRequest, а затем попробуйте проанализировать возвращенную строку.

Простой поиск string.IndexOf("OrgName:") должен вас приблизить.

URL-адрес примера http://ws.arin.net/whois/?queryinput=207.46.193.254

ХТН

Один выстрел

person OneSHOT    schedule 23.06.2009

Как и во многих других программных проблемах, то, о чем вы спрашиваете, не так просто, как вы могли бы ожидать.

Первый вопрос (вопросы)... каков источник IP-адреса, который вы хотите разрешить - "посетитель" веб-сайта, веб-сервер или неизвестный источник? Для целей этого ответа я сделаю предположение, что вы хотите «конвертировать» посетителя веб-сайта, поскольку это наиболее распространенная / ценная причина для разрешения IP-> Company.

Проблема первая... Используя WHOIS, вы можете определить «владельца» сетевого блока (диапазона IP-адресов), связанного с рассматриваемым IP-адресом. «Владельцем» сетевого блока является (обычно) интернет-провайдер, обслуживающий компанию, которую вы хотите идентифицировать, а не компания, использующая IP-адрес.

Проблема вторая... DNS не является надежным источником для чего-либо, кроме разрешения типа IP->domain.tld или domain.tld->ip. Кроме того, это не соблюдается (на самом деле) и не совсем надежно.

Проблема третья... Возможно, это не проблема для вас. В зависимости от сетевого адаптера (ARIN, RIPE и др.), который разрешил ваш запрос WHOIS, вы обнаружите, что результирующий формат не всегда легко анализировать - читаемый... да, разборчивый... нет.

person Jeffrey M    schedule 19.02.2010