REMOTE_HOST和REMOTE_ADDR之间的区别

hd.*_*hd. 41 apache server-variables

这两个变量有什么区别?

REMOTE_HOSTREMOTE_ADDR.

Rue*_*uel 37

REMOTE_HOST属于客户端的主机名(即发出请求的计算机).REMOTE_ADDR是指客户端的IP地址.

有时主机名是不可解析的,因此REMOTE_HOST将返回REMOTE_ADDR或IP地址.

  • 如果在服务器上启用了"HostnameLookups",则REMOTE_HOST也仅设置为_host_,否则_always_包含IP地址.(`HostnameLookups`默认为Off - 性能原因.) (6认同)
  • 我想提一下,如果中间有代理服务器,则可能会看到意外的结果。 (2认同)

NOZ*_*IGH 10

来自RFC-3875 \xef\xbc\x9a

\n
    \n
  • REMOTE_ADDR \xef\xbc\x9aREMOTE_ADDR 变量必须设置为向服务器发送请求的客户端的网络地址。
  • \n
\n
      REMOTE_ADDR  = hostnumber\n      hostnumber   = ipv4-address | ipv6-address\n      ipv4-address = 1*3digit "." 1*3digit "." 1*3digit "." 1*3digit\n      ipv6-address = hexpart [ ":" ipv4-address ]\n      hexpart      = hexseq | ( [ hexseq ] "::" [ hexseq ] )\n      hexseq       = 1*4hex *( ":" 1*4hex )\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 远程主机 \xef\xbc\x9aREMOTE_HOST 变量包含向服务器发送请求的客户端的完全限定域名(如果可用),否则\nNULL。完全限定域名采用 RFC 1034 [17] 第 3.5 节和 RFC 1123 [12] 第 2.1 节中所述的形式。\n域名不区分大小写。
  • \n
\n
The REMOTE_HOST variable contains the fully qualified domain name of\n   the client sending the request to the server, if available, otherwise\n   NULL.  Fully qualified domain names take the form as described in\n   section 3.5 of RFC 1034 [17] and section 2.1 of RFC 1123 [12].\n   Domain names are not case sensitive.\n\n      REMOTE_HOST   = "" | hostname | hostnumber\n      hostname      = *( domainlabel "." ) toplabel [ "." ]\n      domainlabel   = alphanum [ *alphahypdigit alphanum ]\n      toplabel      = alpha [ *alphahypdigit alphanum ]\n      alphahypdigit = alphanum | "-"\n
Run Code Online (Sandbox Code Playgroud)\n