Как работает географический поиск по IP-адресу?

StackOverflow https://stackoverflow.com/questions/274308

  •  07-07-2019
  •  | 
  •  

Вопрос

Являются ли какие IP-адреса присвоены каким интернет-провайдерам общедоступной информацией?Как службы geo IP получают эту информацию и поддерживают ее в рабочем состоянии?

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

Это было полезно?

Решение

Что бы это ни стоило, я работал на руководящем уровне в индустрии интернет-провайдеров более десяти лет, так что у меня есть достаточно опыта с этим.

Большие диапазоны IP-адресов распределяются по мере необходимости IANA каждому из Региональные интернет-реестры .

Регионы, как правило, имеют континентальный размер - IP-адреса не назначаются для каждой страны.

Затем RIR назначают IP-адреса интернет-провайдерам, которые, в свою очередь, назначают их конечным пользователям.

Каждый из RIR поддерживает сервер whois , к которому можно обратиться, чтобы выяснить не только, какому провайдеру был назначен какой-либо сетевой блок, но в некоторой степени, какому конечному пользователю и этому конечному пользователю адрес.

Обратите внимание, что многие интернет-провайдеры не заполняют эту информацию для каждого клиента. Следовательно, если вы являетесь постоянным абонентом услуги DSL, скорее всего, в записях Geo будет указан адрес вашего интернет-провайдера, а не ваш собственный адрес.

Различные провайдеры GeoLocation в основном работают с данными этих whois . Обратите внимание, что законность этого действия является чем-то вроде серой области - заявление об авторских правах RIPE на базу данных здесь .

IANA также поддерживает корневую зону для DNS, но она полностью отделена от любых функций распределения IP. Очень важно поддерживать различие между операциями с доменными именами и IP-адресами.

Другие советы

Существует множество библиотек, в которых есть таблицы сопоставления, а также сервисы, которые вы можете включить в свой код.

Самое важное, что нужно понять, это то, что нет прямой связи между IP-адресом и какой-либо частью мира. Адреса выделяются большими блоками для организаций, которые являются примерно географическими, которые, в свою очередь, выделяют меньшие блоки, это может происходить на нескольких уровнях для любого заданного IP-адреса (Альнитак хорошо объясняет процесс).

Дело в том, что данные WHOIS не должны быть точными. Если у меня есть адресный блок, я могу сказать, что он на Марсе. И даже если вы сузите местонахождение конечной организации (скажем, очень маленького интернет-провайдера на Аляске), пользователь может использовать дозвон с Гавайских островов или сервер может принимать компанию из Гуама.

Таким образом, всегда есть элемент риска / оценки при сопоставлении IP-адреса (или доменного имени) с физическим местоположением. Это не значит, что вы никогда не должны этого делать, есть много приложений, где грубая или несовершенная информация очень полезна.

Чтобы ответить на конкретный вопрос о «как это работает»: много ручного труда, и базы данных в значительной степени поддерживаются вручную . Как указывают другие ответы, нет реальной корреляции между диапазонами IP-адресов и странами, а тем более конкретными регионами. В последнее время система распределения пространства IP-адресов стала еще более децентрализованной, что означает, что мелкие частные поставщики могут получать диапазоны адресов IPv4 независимо от географического региона. Вот почему Google приобрела Urchin, чтобы они могли использовать свои сервисы для Google Analytics, которая предоставляет очень точную информацию о IP-адресе в географическом регионе.

Если вы не хотите использовать такой сервис, как MaxMind (бесплатно для личного использования и база данных в некоторой степени открыта) или Google Analytics (бесплатно для личного использования), есть бесплатные (и, следовательно, всегда слегка устаревшие) базы данных, плавающие вокруг, иногда в виде плоских файлов.

Остерегайтесь, данные часто медленно обновляются и даже медленнее копируются. Мое рабочее место изменило интернет-провайдеров несколько лет назад, и нам был присвоен блок ранее канадских IP-адресов (мы находимся в США), в течение нескольких месяцев Google продолжал предоставлять нам google.ca в качестве поисковой системы по умолчанию. Примерно в 1/2 раза мой домашний IP-адрес приходит из моего города, а 1/2 - из города в другом штате.

Джейсон прав, что процесс такой же, но обновления еще медленнее, а данные менее точны.

Ответ Алнитака в значительной степени соответствует действительности.

В качестве дополнительного примечания, если вы хотите использовать .dll для определения местоположения пользователя, вы можете попробовать это Расширение IP - адреса найдено на CodePlex ( Кодовый комплекс ).У него есть внутренняя база данных интернет-провайдеров по местоположениям.Как упоминал выше Alnitak, у каждого интернет-провайдера есть IP-блоки..таким образом, вся эта информация скрыта внутри .dll :)

Он действительно прост в использовании.Просто обратитесь к .dll, а затем создайте экземпляр Системный.Сетевой.IP-адрес возражаю!расширения перечислены на нем.

Мне также нужно заявить, что я являюсь автором этого проекта / продукта codeplex.

Пожалуйста, проверьте это :)

Редактировать:добавлена информация о том, что я являюсь автором этого продукта.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top