如何获取访问服务器的域名
Posted
技术标签:
【中文标题】如何获取访问服务器的域名【英文标题】:How to get domain name who access the server 【发布时间】:2012-11-26 10:00:53 【问题描述】:我正在创建一个 REST API,所以基本上一个 api 密钥只对一个域有效,
示例:api_key 0kjs9s9s9 仅对 mysite.com 有效
这是出于安全目的,因此 0kjs9s9s9 只能从 mysite.com 访问。
那么问题来了,如何获取访问该页面的域名?
当我打印时,print_r($_SERVER)
,我只得到一个关于谁在请求页面的信息,'REMOTE_ADDR',它是一个 IP。从某个地方阅读后,我发现我可以使用gethostbyaddr($_SERVER['REMOTE_ADDR'])
但我不确定这是正确的方法。
请任何人给我这个问题的示例代码。
如果 mysite.com 在代理和负载平衡器群下运行,会怎样?我会得到哪个IP?代理还是域?
有人可以用假域名发送请求吗?
提前致谢
【问题讨论】:
在谈论域时,您似乎是在谈论浏览器中的脚本?如果是这样,那么我认为您只能通过依赖一些 javascript 技巧来做到这一点,即使这样也可以使用服务器端调用来伪造它。在REST authentication and exposing the API key 上查看我的回答。对于服务器端请求,您需要询问 API 密钥的用户,该 API 将从哪个服务器 IP 地址使用。 【参考方案1】:远程 IP 不一定会解析。代理和 NAT 设备可能会显示自己的 IP 地址;发起设备很可能没有公共 IP 地址,如果它自己的话。
【讨论】:
以上是关于如何获取访问服务器的域名的主要内容,如果未能解决你的问题,请参考以下文章