Каков формат IP, возвращаемый ServletRequest.getRemoteAddr () - PullRequest
3 голосов
/ 29 сентября 2011

В Javadoc ServletRequest.getRemoteAddr () ничего не говорится о формате возвращаемых IP-адресов.Это раздражает при реализации фильтров.На что мы можем рассчитывать?Есть ли официальные спецификации, на которые можно положиться?Спасибо.

Ответы [ 3 ]

9 голосов
/ 29 сентября 2011

Давайте начнем с ServletRequest#getRemoteAddr() javadoc :

getRemoteAddr

    java.lang.String getRemoteAddr()

Возвращает IP-адрес клиента или последнего прокси-сервера, отправившего запрос. Для сервлетов HTTP совпадает со значением переменной CGI REMOTE_ADDR.

(акцент мой)

Хорошо, давайте прочитаем CGI REMOTE_ADDR spec :

4.1.8. REMOTE_ADDR

Переменная REMOTE_ADDR ДОЛЖНА быть установлена ​​на сетевой адрес клиента, отправляющего запрос на сервер.

   REMOTE_ADDR  = hostnumber
   hostnumber   = ipv4-address | ipv6-address
   ipv4-address = 1*3digit "." 1*3digit "." 1*3digit "." 1*3digit
   ipv6-address = hexpart [ ":" ipv4-address ]
   hexpart      = hexseq | ( [ hexseq ] "::" [ hexseq ] )
   hexseq       = 1*4hex *( ":" 1*4hex )

Формат адреса IPv6 описан в RFC 3513 [15] .

Там у вас есть все возможные форматы.

1 голос
/ 29 сентября 2011

Это адрес IPv4 или IPv6 в стандартной текстовой записи.

  • Для IPv4 это знакомая «десятичная запись», например 192.168.254.1. Я не мог найти RFC, который определяет это. В Википедии упоминается, что допустимо использовать восьмеричную, двоичную или шестнадцатеричную нотацию для любого из четырехугольников (и даже для смешивания и сопоставления), но я никогда не видел ничего, кроме десятичного.
  • Для IPv6 это указано в RFC-2373 .
0 голосов
/ 12 апреля 2017

Я всегда получал адреса IPv4 в обычном десятичном формате. Но недавно я заметил, что для некоторых клиентов HttpServletRequest.getRemoteAddr () возвращает строки, которые выглядят следующим образом: статические. (IPv4 в десятичном формате) .mydomain.net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...