Как работает географический поиск по IP? - PullRequest
25 голосов
/ 08 ноября 2008

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

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

Ответы [ 5 ]

43 голосов
/ 10 ноября 2008

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

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

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

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

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

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

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

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

5 голосов
/ 05 декабря 2008

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

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

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

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

4 голосов
/ 12 марта 2009

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

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

2 голосов
/ 08 ноября 2008

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

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

1 голос
/ 05 декабря 2008

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

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

Это действительно удобно. Просто обратитесь к .dll, а затем создайте экземпляр объекта System.Net.IpAddress ! расширения перечислены на нем.

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

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

РЕДАКТИРОВАТЬ: добавлена ​​информация о том, что я являюсь автором этого продукта.

...