Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:如何获取ajax请求的主机?_Php_Ajax_Hostname - Fatal编程技术网

PHP:如何获取ajax请求的主机?

PHP:如何获取ajax请求的主机?,php,ajax,hostname,Php,Ajax,Hostname,我有一个API服务器,我想实现一个公共API密钥和一个私有API密钥。公共API键背后的思想是在javascript应用程序中使用它们,从web浏览器调用ajax。为了完全验证密钥,我希望确保它来自的域名位于受信任域列表中 如何获取此类调用的主机名?您的API服务器将检查$\u server['REMOTE\u ADDR']。这会给你客户的IP地址。如果您正在执行基于主机名的筛选,则必须执行反向DNS查找以将该IP映射回主机名(例如),尽管并非所有IP都定义了反向映射。谢谢您的回答!这对ajax

我有一个API服务器,我想实现一个公共API密钥和一个私有API密钥。公共API键背后的思想是在javascript应用程序中使用它们,从web浏览器调用ajax。为了完全验证密钥,我希望确保它来自的域名位于受信任域列表中


如何获取此类调用的主机名?

您的API服务器将检查
$\u server['REMOTE\u ADDR']
。这会给你客户的IP地址。如果您正在执行基于主机名的筛选,则必须执行反向DNS查找以将该IP映射回主机名(例如),尽管并非所有IP都定义了反向映射。

谢谢您的回答!这对ajax调用有效吗?我使用的是gethostbyaddr,但是$\u SERVER['REMOTE\u ADDR']不是客户端的IP吗(用户不是服务器)?php文档中提到了远程地址“用户查看当前页面的IP地址”。然后,我将为用户获取IP,并且不会获得有效的域作为回报,即使我根据IP地址进行验证,我也不会拥有有效的IP。我很抱歉,对吗?或者是我遗漏了什么?ajax调用只是在浏览器后台进行的常规http调用。ajax调用和常规的“单击链接”或“提交表单”请求之间在服务器端没有区别。您仍然可以获得用户机器的IP或他们正在通过的nat网关(例如,他们的家庭dsl/电缆调制解调器/路由器)。