2011-06-13 97 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