Я очень хорошо знаю, что этот вопрос задавался довольно много раз здесь, но люди, пожалуйста, прочтите этот вопрос. К тому же я стараюсь сформулировать этот вопрос, отсюда и разделы Prelude / Question.
Прелюдия:
Базы данных GeoIP предварительно настроили сопоставление IP-адреса с его географическим положением. Нет никакой гарантии, что они точны, правда? то есть IANA выдает блоки IP различным RIR, например APNIC. Кроме того, APNIC может выдавать IP-адреса любому человеку в любой части мира; не только в Азиатско-Тихоокеанский регион. Таким образом, нет уверенности в точности карт Geo-IP, которые существуют на данный момент.
Вопросы:
1.
Учитывая эту неопределенность, как крупные веб-сайты, такие как Facebook и Google, справляются с этим? Я конкретно говорю о «метках времени», которые они присваивают нашим электронным письмам / сообщениям. Разве они не угадывают наше местоположение и, следовательно, часовой пояс по IP-адресу доступа? Скажем, когда я получаю доступ к Gmail, подключаясь к VPN, находящейся в Канаде, мои письма помечаются ETC. Когда я подключаюсь к одному из них в США, на нем указывается тихоокеанский часовой пояс. Учитывая упомянутую ранее неопределенность, разве нет большой вероятности, что они предоставят ошибочные временные метки, верно? Но, честно говоря, я никогда такого не видел.
Как бы мы объяснили тот факт, что они всегда показывают точные часовые пояса и никогда не ошибаются?
2.
Это может быть похоже на (1), извините, если так.
У меня есть удаленный доступ к серверу, зарегистрированному с IP-адресом из реестра США. Но географически он расположен в округе Колумбия в Токио. Если каким-то образом я получаю доступ к своему почтовому ящику Gmail через этот сервер (возможно, удаленный X-сеанс?).
Какой часовой пояс я буду видеть в своих письмах?
Обновление по вопросу:
(Вы даже можете игнорировать предыдущие разделы «Вопрос» (1) и (2))
С ответом Иэна я понял, что ищу ответ: «Как веб-сайты предоставляют пользователям географическое расположение в Интернете». Например, посетители из Канады будут перенаправлены на google.ca, а посетители из Индии - на google.co. в и так далее. Языки даже настроены по геолокации.
Так что, если я собираюсь запустить веб-сайт, требующий предоставления пользователям геолокационного опыта, мне придется полагаться на базы данных гео-IP, такие как MaxMind. Так что у меня все еще есть шансы на ошибку, верно? А такие сайты, как Google и Facebook, могут поддерживать свою точность в гео-IP благодаря своей огромной изобретательности своих сервисов и способу сбора данных от конечных пользователей, верно?
Хотя нет никаких гарантий относительно точности геолокационного IP-адреса, они, как правило, более точны, чем вы думаете. Остальная часть вашего вопроса отчасти спорным из-за этого. Точно так же вы предполагаете, что геолокационные IP-адреса используются для отображения информации о времени, что не всегда так.
Скажем, когда я получаю доступ к Gmail, подключаясь к VPN, находящейся в Канаде, мои письма помечаются ETC. Когда я подключаюсь к одному из них в США, на нем указывается тихоокеанский часовой пояс.
Gmail этого не делает. GMail использует настройки смещения часового пояса компьютера, который вы используете, а не геолокационный IP-адрес, с которого вы подключаетесь. Facebook делает то же самое. Это легко проверить.
Из вышесказанного следует, что при использовании удаленного компьютера в Токио GMail будет отображать время в Токио, если часовой пояс системы установлен на Токио.
Хотя GMail не использует геолокационный IP-адрес, с которого вы подключаетесь, для установки даты для ваших электронных писем, другие сервисы используют его, чтобы предоставить вам возможность геолокации. Например, поиск Google предоставит вам услугу с геолокацией.
Очень интересный вопрос. Я не слишком хорошо знаком с Gmail, поэтому приведу частичную предысторию:
RFC 2822 - Формат Интернет-сообщений состояния:
"3.3. Date and Time Specification
Date and time occur in several header fields. This section specifies the syntax
for a full date and time specification.
[...]
The day is the numeric day of the month. The year is any numeric year 1900
or later.
The time-of-day specifies the number of hours, minutes, and optionally seconds
since midnight of the date indicated.
The date and time-of-day SHOULD express local time.
The zone specifies the offset from Coordinated Universal Time (UTC, formerly
referred to as "Greenwich Mean Time") that the date and time-of-day represent."
Таким образом, каждый почтовый сервер будет добавлять к каждой проходящей почте значение заголовка со временем в соответствии с этим сервером и смещением относительно UTC.
Затем клиент смотрит на временную метку, добавленную его собственным почтовым хостом, и интерпретирует ее заново в соответствии с часовым поясом, на который настроен сам клиент.
Если также используется геолокация IP-адреса, это выходит за рамки спецификации формата Интернет-сообщений. Я сам никогда не видел, чтобы геолокация использовалась при настройке почтового клиента / сервера, но мне было бы интересно узнать, есть ли у кого-нибудь еще.
Кажется, вы не понимаете, как работают реестры. Возможно, что диапазон IP-адресов (обратите внимание, что мы говорим о адреса здесь - не IP имена которые очень разные) могут поддерживаться регистратором с другой географией, но это происходит крайне редко, поскольку он также является источником информации о маршрутизации пакетов в сеть.
Если вы посмотрите на запись whois, то увидите, что она содержит код страны ISO-3166. например
[colin@localhost ~]$ whois 82.13.151.104
% This is the RIPE Database query service.
[вырезать]
inetnum: 82.13.144.0 - 82.13.175.255
netname: INFRASTRUCTURE
descr: NTL Infrastructure - Watford
country: GB
admin-c: NNMC1-RIPE
tech-c: NNMC1-RIPE
status: ASSIGNED PA
mnt-by: AS5089-MNT
remarks: INFRA-AW
source: RIPE # Filtered
Можно получить дополнительную информацию о местоположении IP-адреса на основе информации traceroute - задержка является индикатором расстояния - и она должна постепенно приближаться (географически) к цели).
Но если бы моей единственной целью было отображение времени на клиенте, я бы не использовал этот подход (кроме как в качестве запасного варианта) - javascript знает, как преобразовать время UTC / GMT в местный часовой пояс (хотя на самом деле это не так. раскрыть, что это за часовой пояс - по крайней мере, явно).
Кроме того, если у вас есть доступ к javascript, вы можете использовать API геолокации, чтобы получить более точное местоположение.
Прелюдия: это скорее начало обсуждения, чем настоящий ответ. На самом деле не отвечая на технический аспект вопроса, я считаю, что это может дать представление о том, почему GeoIP или аналогичный сервис не так важен для крупных игроков.
Google и Facebook, два поставщика услуг, упомянутые в вопросе, на сегодняшний день являются наиболее распространенными и широко распространенными компаниями в сети. Если есть компания, обладающая своего рода надежной базой знаний о том, откуда подключаются ее клиенты, это самые горячие кандидаты.
Вы заметили, сколько людей добавляют во все свои сообщения всевозможные данные, связанные с географией? И как Facebook всегда просит вас добавлять адрес или должность во все, что вы публикуете? Люди, охотно предоставляющие правильную информацию о своем местонахождении, являются лучшим источником основы, на которой любой хороший статистический метод может основывать подобные предположения.
Google везде - не только с видимый услуги, которые они предоставляют через окно браузера. Возьмите вездесущие телефоны, планшеты Android и множество других гаджетов, которые просят вас указать свою позицию (с обещанием анонимности - в этом случае почему бы и нет, им нужна только комбинация вещей, связанных с IP, и вашей позиции). И сервисы рекламы и аналитики, обеспечивающие очень ценную связь между веб-сайтами, разбросанными по всему миру, их пользователями и ... да, любой доступной информацией о местоположении. Вам действительно не нужно шпионить за людьми, наличие такого хорошего и широкого набора сервисов позволяет легко добавлять необходимые два плюс два в кампусе Google по математике и мозгу.