Разница между REMOTE_HOST и REMOTE_ADDR
В чем разница между этими двумя переменными?
REMOTE_HOST
а также REMOTE_ADDR
,
2 ответа
REMOTE_HOST относится к имени хоста клиента (т.е. компьютера, выполняющего запрос). REMOTE_ADDR относится к IP-адресу клиента.
В некоторых случаях имя хоста неразрешимо, поэтому вместо REMOTE_HOST возвращается REMOTE_ADDR или IP-адрес.
Из RFC-3875:
- 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 )
- REMOTE_HOST • Переменная REMOTE_HOST содержит полное доменное имя клиента, отправляющего запрос на сервер, если доступно, в противном случае - NULL. Полные доменные имена принимают форму, описанную в разделе 3.5 RFC 1034 [17] и разделе 2.1 RFC 1123 [12]. В доменных именах регистр не учитывается.
The REMOTE_HOST variable contains the fully qualified domain name of
the client sending the request to the server, if available, otherwise
NULL. Fully qualified domain names take the form as described in
section 3.5 of RFC 1034 [17] and section 2.1 of RFC 1123 [12].
Domain names are not case sensitive.
REMOTE_HOST = "" | hostname | hostnumber
hostname = *( domainlabel "." ) toplabel [ "." ]
domainlabel = alphanum [ *alphahypdigit alphanum ]
toplabel = alpha [ *alphahypdigit alphanum ]
alphahypdigit = alphanum | "-"
1.$_SERVER['REMOTE_ADDR']
- Это содержит реальный IP-адрес клиента. Это самое надежное значение, которое вы можете найти у пользователя.
2.$_SERVER['REMOTE_HOST']
- При этом будет выбрано имя хоста, с которого пользователь просматривает текущую страницу. Но чтобы этот скрипт работал, необходимо настроить поиск имени хоста внутри httpd.conf.
Удаленный: это компьютер, который находится в каком-то удаленном месте, из которого полученные данные обычно относятся к серверу в частной сети или общедоступном Интернете.
Remote_ host вместо этого вернет REMOTE_ ADDR или IP-адрес.