0

我使用 CloudFlare,所以我的服务器的 IP 地址是隐藏的,我想保持这种状态。当我发出 HTTP 请求时,显然我的 IP 将被泄露。但是会gethostbyaddr泄露我的 IP 地址吗?我想获取用户的IP主机,所以我这样做:

$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

用户能通过这个找到我服务器的IP地址吗?

4

1 回答 1

3

gethostbyaddr进行反向 DNS 查找。它不直接联系主机。但是,它可能会联系 DNS 服务器进行反向查找。

通常PHP 会要求系统的 DNS 服务进行反向查找,如果答案没有被缓存,该服务将联系其最近的 DNS 服务器以获取答案。如果没有答案,它将出去并联系最近的上游服务器等,直到答案回来。

因此,服务器很少会比其最近的 DNS 服务器更远。但这当然不是不可能的,如果您的服务器碰巧联系了您的用户碰巧可以控制的 DNS 服务器,那么该用户可以看到传入的 DNS 解析请求。

这将是极其罕见的,而且通常您的服务器将与之联系的唯一 DNS 服务器是其最近的 DNS 服务器,但不能完全排除。

于 2018-09-27T12:02:03.677 回答