2011-06-13 111 views
0

我有来自外部域的脚本访问我们的服务器上的api脚本,它通过json返回信息。我的问题是,如果有人从他们的网站向我们的网站发送了api脚本的请求,我可以获得请求来自的url/domain吗?如果是的话,我会怎么做?我尝试使用$ _SERVER来获取域名,但这只是给我的域我们托管的API脚本。使用PHP从api获取域名?

即时通讯使用PHP 4.x,会很快升级,但不是现在。

+1

gethostbyaddr() – 2011-06-13 18:00:35

+0

这也适用于子域吗?或只是顶级域名?因此,如果有人从subsite.mainsite.com访问api,它是否会获得mainsite.com?我想这取决于IP地址。 – John 2011-06-13 18:16:03

回答

0

最好的办法是检查$_SERVER['HTTP_REFERER']

+0

@米克汉森我试过,但价值对我来说是空白的。 – John 2011-06-13 17:58:50

+0

它并不总是被支持。 – 2011-06-13 18:01:00

+0

然后我不认为你有很多机会知道它起源于哪个域,他们可能使用API​​ serverside而不是发送referer。 您可以实施API密钥系统来跟踪谁使用您的API。 – 2011-06-13 18:01:01

0

只是注意,引荐可能会被欺骗,所以如果你正在使用它进行认证,不要。当你抓住$_SERVER['HTTP_REFERER']后,你可以使用这个功能来解析出所需的东西:parse_url