2013-10-12 41 views
18

我正在尋找一個好的免費API,至少會返回IP的國家。 我發現了幾個將工作,但他們似乎是不可靠的。 主要問題是我必須每天提出約50000-100000個請求。良好的地理定位API由IP

是否有一些很好的腳本可以安裝在我的服務器上並使用它來代替API? 謝謝

+1

使用的https://geoip-db.com IPV4和IPv6支持的服務。 –

+0

IPLocate.io提供了一個免費的API:['https://www.iplocate.io/api/lookup/8.8.8.8'](https://www.iplocate.io/api/lookup/8.8.8.8) - 免責聲明:我運行這項服務。 – ttarik

+6

您可以嘗試免費的IP地理定位API:https://geoipify.whoisxmlapi.com/ – user121196

回答

13

您可以嘗試使用IPInfoDB,因爲我發現它很有用。

的API返回的IP地址(國家,地區,城市,郵編 ,緯度,經度)和XML格式 相關的時區的位置。您可以使用PHP,Javascript,Ruby, Python和ASP查找以下代碼示例。


有,我可以安裝在我的服務器上,並用它 的API,而不是一些好的劇本?

來自同一個站點

ASP例如

<% 
    'Get visitor IP 
    Dim UserIPAddress 
    UserIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
    If UserIPAddress = "" Then 
    UserIPAddress = Request.ServerVariables("REMOTE_ADDR") 
    End If 
%> 
<% 
    'Set API key 
    api_key = "<your_api_key>" 
%> 
<% 
    'Get info and print 
    myxml="http://api.ipinfodb.com/v3/ip-city/?key="&api_key&"&ip=" &UserIPAddress&"&format=xml" 
    set xml = server.CreateObject("MSXML2.DOMDocument.6.0") 
    xml.async = "false" 
    xml.resolveExternals = "false" 
    xml.setProperty "ServerHTTPRequest", true 
    xml.load(myxml) 
    response.write "<p><strong>First result</strong><br />" 
    for i=0 to 10 
     response.write xml.documentElement.childNodes(i).nodename & " : " 
     response.write xml.documentElement.childNodes(i).text & "<br/>" 
    NEXT 
    response.write "</p>" 
%> 

還檢查了Maxmind

+0

ipinfodb的鏈接返回404,請參閱https://ipdata.co我們是一個更多的數據點更近的服務。 – Jonathan

4

您可以檢出的MaxMind爲GEOIP數據庫:\他們提供IP到地理檢測不同級別的粒度,例如IP到國家,IP到地區等。您可以通過他們的API使用它們,也可以下載整個IP到地理映射數據庫。

最簡單和最便宜的方式是購買GeoIP國家數據庫http://www.maxmind.com/en/country,您可以將它們保存爲本地文件,然後可以使用您的語言風格喜歡的任何軟件包查詢。

下面是Ruby的一個例子寶石讀取GeoIP的數據:https://github.com/cjheath/geoip

+3

這不符合海報的「免費」要求:[費用](https://www.maxmind.com/zh/geoip2-precision-services)。 – 10basetom

+1

他們有免費版本。 –