Зачем нужен HTTP-запрос для получения IP-адреса в браузере - PullRequest
0 голосов
/ 25 июня 2018

Мне нужно получить IP-адрес пользователя из браузера. Я знаю, что мы можем получить информацию об устройстве из браузера с простым JS без каких-либо запросов http (ОС и информация браузера через User-Agent), но чтобы получить IP-адрес, вам нужно сделать HTTP-запрос, так как ваш браузер присоединит IP адрес в качестве заголовка запроса, чтобы вы могли получить его на стороне сервера или в ответе на этот запрос в пользовательском интерфейсе. Мне не хватает некоторого базового понимания, и я не могу понять, почему требуется HTTP-запрос и в какой момент IP-адрес добавляется в качестве заголовка, если браузер не знает, как присоединяется заголовок?

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Заявление - "ваш браузер будет прикреплять IP-адрес в качестве заголовка запроса" is Неправильно .
Обычно запрос http не содержит информацию об IP-адресе источника.в заголовках.Вы можете просмотреть https://en.wikipedia.org/wiki/List_of_HTTP_header_fields для обычных заголовков.

Но вы правы, что сервер должен выяснить IP-адрес клиента.Как это может архивировать?
На самом деле HTTP - это протокол прикладного уровня.Тема исходного IP принадлежит интернет-слою.
Пакет интернет-протоколов (TCP / IP) решит эту проблему.

Между тем это означает, что невозможно получить ваш ip напрямую в браузере.Более того, иногда даже невозможно получить ваш публичный IP-адрес в вашей Системе.
Например, точка доступа WiFi обычно использует DHCP для назначения вам только частного IP-адреса.И используйте NAT для изменения ваших пакетов при отправке / получении запроса.

0 голосов
/ 25 июня 2018

Я считаю, что OSI_model - это базовые знания, которые вы ищете.https://en.wikipedia.org/wiki/OSI_model

HTTP-запрос - это только верхний уровень всей сетевой системы.Протокол IP обрабатывается на транспортном уровне (уровень 4) и не поступает на прикладной уровень (уровень 7).

...