使用php从api调用获取域?

使用php从api调用获取域?,php,api,dns,Php,Api,Dns,我有来自外部域的脚本,可以访问服务器上的api脚本,该脚本通过json返回信息。我的问题是,如果有人从他们的站点向我们的站点请求api脚本,我可以获取请求来自的url/域吗?如果是这样,我该怎么做?我尝试使用$\u服务器获取域名,但这只会为我提供我们承载的api脚本所在的域 我正在使用PHP4.x,是的,很快就会升级,但不是现在。您最好的办法是检查$\u服务器['HTTP\u REFERER']请注意,REFERER可能会被欺骗,所以如果您使用它进行身份验证,请不要这样做。在您获取$\u服务器[

我有来自外部域的脚本,可以访问服务器上的api脚本,该脚本通过json返回信息。我的问题是,如果有人从他们的站点向我们的站点请求api脚本,我可以获取请求来自的url/域吗?如果是这样,我该怎么做?我尝试使用$\u服务器获取域名,但这只会为我提供我们承载的api脚本所在的域


我正在使用PHP4.x,是的,很快就会升级,但不是现在。

您最好的办法是检查
$\u服务器['HTTP\u REFERER']
请注意,REFERER可能会被欺骗,所以如果您使用它进行身份验证,请不要这样做。在您获取
$\u服务器['HTTP\u REFERER']
之后,您可以使用此函数解析出必要的内容:

然后我认为您没有太多机会知道它来自哪个域,他们可能正在使用API服务器端,而没有发送REFERER。您可以实现一个API密钥系统来跟踪谁使用了您的API。检查ip并执行gethostbyadd()@G molvi:这个想法很有趣,但我认为您不可能通过这种方式获得域。该函数返回IP地址的主机名-在本例中,这可能对他没有多大帮助。@Mick Hansen它实际上已经使用了api密钥。我没有在我原来的帖子里解释所有的事情。基本上,我希望基于访问api的站点运行某些函数。但是我不想为每个域/子域创建一个api,所以我尝试动态地创建它。我想你需要api支持的这个功能,那么这个功能也适用于子域吗?还是仅仅是顶级域名?那么,如果有人从subsite.mainsite.com访问api,它会得到mainsite.com吗?我想这取决于ip地址。