为什么 domain.com 在 hostgator 上托管时显示为 theplant.com?

为什么 domain.com 在 hostgator 上托管时显示为 theplant.com?

我有一个脚本,用于检测其调用方网站的 URL。如果调用方是另一个网站,它应该给出类似 的内容http://callersite.com。我正在使用这行 php 代码(尽管我怀疑这对系统管理员来说无关紧要)

gethostbyaddr($_SERVER['REMOTE_ADDR'])

我正在测试一个托管在 hostgator 上的呼叫者网站。但我注意到我没有得到callersite.com,我得到的是1a.12.12ab.static.theplanet.com。我不知道theplanet.com是什么,也不知道为什么我没有得到caller site.com

另外,我需要做什么才能真正获得调用我的脚本的网站域名?

--

谢谢你的解释。有人建议我使用,$_SERVER['HTTP_REFERER']但这不是我想要的。我的脚本充当 API。另一个网站向它发出 curl 请求并获取输出,然后将其呈现给用户。因此 http referrer 给出,false因为调用者 site.com 直接调用了我。所以还有希望吗?

答案1

Hostgator 服务器托管在 Theplanet DC(现在是 Softlayer),这就是为什么您会得到 1a.12.12ab.static.theplanet.com 作为主机名。用户没有 RDNS(或共享),这就是

获取主机地址($_SERVER['REMOTE_ADDR'])

获取,因此它获取的是 theplanets 默认值。您可以查看此内容,它将提取用户来自的地址。

$ref=@$HTTP_REFERER;

答案2

“gethostbyaddr” 获取连接 IP 地址的反向 DNS。您可能正在寻找的是 referrer,它位于 echo $_SERVER['HTTP_REFERER']; 中

答案3

gethostbyaddr 对 IP 地址进行反向查找。如果此 IP 地址属于 ISP 提供商,在本例中为 theplanet.com 或 softlayer.com,那么您将获得指向他们定义的通用名称的指针。

callersite.com 只是该 IP 的别名,而不是真实名称或指针。

如果你使用的是 Linux,请尝试

dig callersite.com

或者在 Windows 上

nslookup callersite.com

或者访问类似页面http://www.dnsqueries.com/en/并从那里开始您的 DNS 查询。

答案4

使用 curl 向请求添加额外标头很容易。如果对方可以修改其脚本,他们只需附加您需要的信息即可。由于您正在构建 API,因此只需将额外标头作为规范的一部分即可。

相关内容