gpt4 book ai didi

php - 哪个更可靠 gethostbyaddr($_SERVER ['REMOTE_ADDR' ]) 或 $_SERVER ['REMOTE_HOST' ]

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:55:03 28 4
gpt4 key购买 nike

我必须从 server script 获取远程 url 主机名,以下哪个更可靠:

gethostbyaddr($_SERVER['REMOTE_ADDR'])$_SERVER['REMOTE_HOST']

最佳答案

这与可靠性无关。这两个变量只是不一样,尽管在某些情况下它们可能包含相同的值。让我解释一下:

$_SERVER['REMOTE_ADDR']

在所有情况下都会包含远程主机的 IP 地址,其中

$_SERVER['REMOTE_HOST']

将包含 DNS 主机名,如果启用了 DNS 解析(如果 HostnameLookups Apache 指令设置为 On,感谢@Pekka)。如果它被禁用,那么 $_SERVER['REMOTE_HOST'] 将包含 IP 地址,这就是您可能已经观察到的。

您的代码应该如下所示:

$host = $_SERVER['REMOTE_HOST'];
// if both are the same, HostnameLookups seems to be disabled.
if($host === $_SERVER['REMOTE_ADDR']) {
// get the host name per dns call
$host = gethostbyaddr($_SERVER['REMOTE_ADDR'])
}

注意:如果您可以控制 apache 指令,我建议您出于性能原因将其关闭并获取主机名 - 仅在您需要时 - 使用 gethostbyaddr()

关于php - 哪个更可靠 gethostbyaddr($_SERVER ['REMOTE_ADDR' ]) 或 $_SERVER ['REMOTE_HOST' ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16853928/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com