2008-11-08 8 views
19

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

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

+2

Возможно, вас заинтересует [xkcd IP-карта] (http://xkcd.com/195/). – 2008-11-08 16:20:00

ответ

36

Для чего он стоит, я работал на старшем уровне в индустрии ISP уже более десяти лет, поэтому у меня есть некоторый опыт в этом.

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

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

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

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

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

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

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

2

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

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

+0

Ну да, когда вы двигаетесь вниз по стеку домена, все становится медленнее и медленнее, и требуется больше времени для распространения ... – 2008-11-08 04:04:51

+0

Есть также проблемы, если ваш провайдер имеет головной офис в другой стране. Джоэл написал об этом, и его хозяин был канадцем. – 2008-11-08 06:16:52

4

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

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

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

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

1

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

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

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

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

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

EDIT: Добавлена ​​информация о я, будучи автором этого продукта.

4

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

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

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

  • Нет связанных вопросов^_^