Вы действительно задаете два вопроса здесь. Знание того, где вы физически находитесь в мире, отличается от фактической маршрутизации трафика к вам. Ирония в том, что веб-сайту вообще не нужно знать, где вы находитесь, а знание того, где вы находитесь, не помогает им направлять вам трафик.
Распознавание вашего географического положения:
В обычной домашней сети ваш маршрутизатор имеет публичный IP-адрес, назначенный ему вашим Интернет-провайдером, который могут видеть все остальные пользователи в мире. Вашему региональному провайдеру был выделен блок адресов некоторым региональным органом, который отличается в зависимости от страны, но в конечном итоге он был получен от Управления по присвоению номеров в Интернете (IANA).
IANA ведет базу данных всех IP-блоков в Интернете, кому они были назначены и где они расположены. IANA также поддерживает сеть серверов по всему миру, которые также хранят списки всех доменных имен в Интернете. Эти базы данных являются публичной записью; любой в Интернете может найти информацию, содержащуюся в них.
Когда вы делаете веб-запрос, ваш публичный IP-адрес становится известен этому серверу. Там нет никакой магии или обратного пути, участвующих в выяснении, где вы находитесь в мире. Поскольку блоки IP-адресов назначаются географическим регионам, веб-сайт может просто найти вас и узнать (по крайней мере, до города), где вы физически находитесь.
Как данные передаются вам:
В дополнение к общему IP-адресу, предоставленному вашим интернет-провайдером, ваш маршрутизатор также имеет частный IP-адрес, который виден только компьютерам в вашей сети. Ваш маршрутизатор становится вашим шлюзом по умолчанию.
Допустим, вы посещаете веб-сайт Google, который имеет адрес 173.194.33.112. Ваш компьютер не знает, как достичь этого адреса, поэтому он отправляет запрос на ваш шлюз по умолчанию (ваш маршрутизатор) и надеется, что он знает, как туда добраться.
Проблема в том, что ваш маршрутизатор также не знает, как добраться до этого адреса, поэтому он перенаправляет запрос на шлюз по умолчанию (это какой-то маршрутизатор, принадлежащий вашему провайдеру), полагая, что он знает, как добраться до этого адреса.
Маршрутизатор интернет-провайдера, вероятно, также не знает, как добраться до этого адреса, поэтому он перенаправляет ваш запрос на еще один шлюз (который может быть маршрутизатором другого интернет-провайдера), полагая, что ИТ-специалисты знают, как добраться до этого адреса.
Этот процесс повторяется снова и снова столько раз, сколько необходимо, пока, наконец, какой-нибудь маршрутизатор в какой-либо сети в мире не знает, как связаться с одним из маршрутизаторов Google, который может его оттуда получить.
Каждый "прыжок" на этом пути не несет никакой информации о других прыжках. Единственное, что необходимо для получения трафика из точки A в точку B, - это адрес назначения (куда вы пытаетесь перейти) и адрес источника вашего компьютера (чтобы получатель мог ответить вам). Вот и все. Ответ отправит вас в то же многопользовательское путешествие.
Это происходит с каждым пакетом. Миллионы раз в секунду. Честно говоря, удивительно, что это так хорошо работает. Ни один роутер в интернете не имеет полной картины всего интернета. Это просто невозможно; Интернет слишком большой.
Итак, как вы можете видеть, зная, где вы находитесь, и зная, как связаться с вами, это две совершенно разные вещи, и одна не требуется для другой.