2010-08-30 37 views
3

我使用PHP,我想知道是否有免費的Web服務可以檢測到我的訪問者的國家。現在我可以得到他們的IP地址,並且我下載了一些與某些地點有關的IPtables,但我不認爲它們相當準確。 所以,如果你知道一些免費的web服務,它會很好。謝謝!有沒有可以在PHP中檢測訪問者國家的網絡服務?

+3

無IP對應位置將永遠是相當準確;我不相信超越「識別國家」的準確性。許多運營商正在爲他們的移動客戶端進行NAT,挪威的Opera(包括臺式機和移動設備)都有代理+加速器,企業用戶擁有VPN,這些VPN使得連接似乎來自主辦公室,而且地理位置數據常常出現故障(例如大多數IP地理定位器將我固定在一個200公里外的DSL上 - 運行該公司的公司*基於其他地方*我所在的地方)。強制XKCD:http://xkcd.com/713/ – Piskvor 2010-08-30 09:40:11

回答

3

我已經使用了以下SOAP GeoIPService效果良好,從webservicex.net。

您當然還需要在您的PHP配置中啓用SOAP支持。

那麼你可以嘗試這樣的:

$client = new SoapClient("http://www.webservicex.net/geoipservice.asmx?WSDL"); 
$params = new stdClass; 
$params->IPAddress = 'xxx.xxx.xxx.xxx'; 
$result = $client->GetGeoIP($params); 
// Check for errors... 
$country = $result->GetGeoIPResult->CountryName; 
+0

它看起來很利基,我會在家裏嘗試,如果一切正常,我會檢查這一個作爲最好的答案:) – 2010-08-30 11:10:48

+0

你可以也可以嘗試http://ipinfodb.com/ip_location_api.php這是另一個很好的免費的,如果上述不適合你。雖然我可以免費獲得一粒鹽,但我不會期望它們100%準確。 – hydrogen 2010-08-30 21:30:47

2

你可以環視MaxMind's開源解決方案。

+0

我試過GeoIP國家鏈接......但它說我必須支付50美元的許可費:( – 2010-08-30 11:11:37

+0

)您需要使用GeoLite庫開源部分 – fabrik 2010-08-30 12:04:40