我使用 CloudFlare,所以我的服务器的 IP 地址是隐藏的,我想保持这种状态。当我发出 HTTP 请求时,显然我的 IP 将被泄露。但是会gethostbyaddr
泄露我的 IP 地址吗?我想获取用户的IP主机,所以我这样做:
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
用户能通过这个找到我服务器的IP地址吗?
我使用 CloudFlare,所以我的服务器的 IP 地址是隐藏的,我想保持这种状态。当我发出 HTTP 请求时,显然我的 IP 将被泄露。但是会gethostbyaddr
泄露我的 IP 地址吗?我想获取用户的IP主机,所以我这样做:
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
用户能通过这个找到我服务器的IP地址吗?
gethostbyaddr
进行反向 DNS 查找。它不直接联系主机。但是,它可能会联系 DNS 服务器进行反向查找。
通常PHP 会要求系统的 DNS 服务进行反向查找,如果答案没有被缓存,该服务将联系其最近的 DNS 服务器以获取答案。如果没有答案,它将出去并联系其最近的上游服务器等,直到答案回来。
因此,服务器很少会比其最近的 DNS 服务器更远。但这当然不是不可能的,如果您的服务器碰巧联系了您的用户碰巧可以控制的 DNS 服务器,那么该用户可以看到传入的 DNS 解析请求。
这将是极其罕见的,而且通常您的服务器将与之联系的唯一 DNS 服务器是其最近的 DNS 服务器,但不能完全排除。