4

Некоторые веб-сайты, такие как http://www.geoip.co.uk, могут получить частный IP-адрес моего хоста, тогда как другие, такие как https://www.iplocation.net/, не могут этого сделать.
В чем причина такого поведения? Я всегда думал, что частный IP недоступен для серверов, если я использую интерфейс NAT.
NAT добавляет публичный IP к исходящему пакету или полностью удаляет частный IP? Если последний случай, почему вышеупомянутое поведение наблюдается?
Кроме того, когда я просматривал исходный код http://www.geoip.co.uk, я заметил, что мой IP отображается как текст, то есть без какого-либо вызова функции JavaScript. Так как веб-сайт узнает мой частный IP-адрес еще до того, как он отобразит веб-страницу?

privateip

10.9.64.58 - это мой частный IP-адрес (тот, который я получаю после ipconfig).

РЕДАКТИРОВАТЬ: Как @simlev указывает, что я должен добавить следующую информацию: я студент университета и подключен к локальной сети института при посещении сайта на моем ПК, но я наблюдаю такое же поведение на моем телефоне, и мой телефон не включен эта локальная сеть. Скриншоты Imgur здесь и здесь.

РЕДАКТИРОВАТЬ: Еще одно замечание, которое я считаю уместным: когда я захожу на сайт с помощью https:// я получаю свой публичный IP-адрес (нужную вещь), но только когда я захожу на него с использованием http:// я получаю частный IP-адрес. Итак, есть ли проблема протокола, о которой мы здесь говорим?

2 ответа2

5

Вы используете http прокси? В моем случае веб-прокси перенаправляет внутренний ip, это, вероятно, функция защиты от злоупотреблений.

Аналогичная возможность заключается в том, что ваш провайдер предоставляет вам только общий внешний IP-адрес, а затем, когда вы посещаете веб-сайты, он также передает им ваш внутренний IP; это делается для выявления злоумышленников: веб-сайт может предоставлять оба ips при подаче отчета о злоупотреблении Интернет-провайдеру, и благодаря внутреннему ip-провайдеру можно быстро отследить злоумышленника. Было бы сложнее сделать это, имея только внешний общий ip.

Поскольку по вашему запросу передаются как внутренние, так и внешние ips, некоторые веб-сайты show-your-ip предпочитают показывать ip, с которого фактически поступил запрос, в то время как другие показывают ip, на чей аккаунт был отправлен запрос.

Проверьте заголовки, которые вы отправляете (например, здесь). Вероятно, у вас есть X-Forwarded-For с вашим личным ip, добавленным чем-то в вашей сети или одним из сетевых устройств провайдера.

Для получения дополнительной информации см. Ответы Кристофера, Адама Каца и Марка здесь. Кстати, Марк предлагает то же предложение, что и я, и ссылается на тот же сайт :-)

Обновление: да, вы (очень вероятно) используете прокси.

Если вы находитесь в студенческом городке, как можно предположить из вашего комментария, имеет смысл только, что ваш интернет-провайдер (он же университет) не подключает каждого из своих студентов напрямую к Интернету: я склонен полагать, что вы прозрачно проксированы ,

Обновление: как ОП заметил и правильно указал, тот же веб-сайт, который был посещен через https, вместо этого показывает внешний ip. Это ожидаемо, поскольку прокси-серверы обычно не изменяют трафик https и поэтому не могут добавить X-Forwarded-For, который выдает внутренний IP-адрес.

1

Возможно, что веб-сайт использует утечку безопасности WebRTC.

uBlock Origin (для Firefox / для Chrome) способен закрыть эту уязвимость безопасности. Но вы должны перейти на его страницу настроек и установить соответствующий флажок «Запретить WebRTC утечки локальных IP-адресов».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .