2011-04-07 30 views
1

嘿傢伙, 我開發了一個網站在我的本地apache安裝程序在我的mac上。我正在向外部域使用兩個請求。一個去geoplugin.net獲取當前的地理位置。 這工作得很好,我的本地設置。然而,當我將文件轉移到我的真實服務器的網站打印如下:php file_get_contents不能在真正的服務器上工作!在本地主機上工作?

警告: 的file_get_contents(http://www.geoplugin.net/php.gp?ip=185.43.32.341) 【功能.file-get-contents]:失敗 打開流:HTTP請求失敗! HTTP/1.0 403禁止在 /home/.sites/74/site484/web/testsite/wp-content/themes/test/header.php 上線241

我能做些什麼嗎?我究竟做錯了什麼?

此外,我在我的網站上使用了一個不會檢索數據的捲曲請求。這兩個工作正常我的本地麻瓜設置。

有什麼想法?

+0

也許你的服務器的IP地址變成了? – Fivell 2011-04-07 13:06:50

+1

您是否可以將f.com()等其他網址(例如google.com)作爲例子? – Treffynnon 2011-04-07 13:10:01

+0

fopoen與google.com會導致相同的錯誤消息。不起作用! – matt 2011-04-07 13:34:35

回答

0

嘗試urlencode查詢字符串。

我也會推薦使用curl擴展。

+0

捲曲也不起作用!我在我的網站上的另一個腳本中使用了捲曲請求。 fopen()也不起作用。 – matt 2011-04-07 15:19:54

1

服務器響應「403 FORBIDDEN」狀態碼。所以file_get_contents()工作正常,但您試圖訪問的服務器(或代理或之間的)不允許它。

這可能有很多原因。例如(像問題的評論),你被禁止或被阻止(因爲要求太高)或其他東西。

+0

但這很奇怪。它如何工作在我的本地主機上,但在真正的服務器上?爲什麼它不工作!網站geoplugin.net甚至提供了這個功能來從這個網站獲取數據,所以爲什麼它不工作? – matt 2011-04-07 15:20:49

1
HTTP/1.0 403 Forbidden 

表示您不允許訪問此文件!嘗試添加用戶代理標題。

+0

什麼是用戶代理標題,我該如何實現? – matt 2011-04-07 15:29:54

+0

也許在另一臺服務器上運行mod_security。並防止錯誤配置的客戶端訪問數據。 – powtac 2011-04-07 15:35:50

1

您需要在geoplugin.com上創建一個帳戶,並訂閱您的域以使用web服務而沒有限制,那麼您將停止接收de 403禁止的錯誤。不要擔心成本,這是一項免費服務,我在三個站點使用它。

0

這是因爲geoPlugin限於每分鐘120次查找。 http://www.geoplugin.com/premium

因此,任何基於此解決方案的網站功能都可能突然遭到破壞。

我會推薦使用www.geoplugin.net/json.gp?ip={ip}和freegeoip.net/json/{ip}。並檢查是否第一個返回null(意味着限制已經達到),然後使用另一個。

+0

這不是答案請添加此評論。 – 4dgaurav 2014-06-04 10:04:30

相關問題