0

嘿,我有一些服务器正在使用 curl 调用我的 API,每个调用者都有一个 API 密钥,该密钥在我的数据库中注册,并带有服务器名称(等 example.com) - 但它以某种方式返回了主机(等 web1. meebox.net)所以我无法验证呼叫。目前我只是在使用:

$ip = $_SERVER['REMOTE_ADDR'];
$website = gethostbyaddr($_SERVER['REMOTE_ADDR']);

和:

$ip = $_SERVER['REMOTE_ADDR'];
$website = $_SERVER['REMOTE_NAME'];

我怎样才能让它告诉我属于服务器而不是主机的 ip 和服务器名称。

谢谢!:)

4

1 回答 1

0

并非所有 IP 都有反向映射。在这些反向映射中,它们可能不会映射到它们来自的“主机名”。例如,DNS 名称可以将无限数量的主机名映射到单个 IP。但是单个 IP 只能“反转”为单个主机名。

例如考虑一个共享服务器:

www.example.com -> 192.168.1.3
www.example.net -> 192.168.1.3
www.example.org -> 192.168.1.3
etc...
etc...
etc...

192.168.1.3 -> server-x.hostingcompany.com

您无法可靠地检索远程主机的主机名,因为您所拥有的只是一个 IP 地址,而 IP 不是任何特定主机名的“唯一”标识符。

于 2013-02-27T17:40:36.773 回答