2010-07-12 118 views
23

有誰知道任何打開的RESTful API,我可以調用用戶的IP地址到經度和緯度的地理編碼?地理編碼的IP地址?

理想情況下,它會是這樣的:http://google.com/geocode_api/?IP=1.2.3.4它會返回經緯度。

+0

可能重複[如何確定從一個IP地址,郵政編碼及城市?(HTTP :// stackoverflow.com/questions/348614/how-to-determine-a-zip-code-and-city-from-an-ip-address) – 2010-07-12 21:48:51

+1

@John Saunder,我其實不在乎郵編或者用戶所在的城市。我只是想知道他們的經度和緯度,以便我可以將我的地圖居中放在他們的家中。 – Tim 2010-07-12 21:52:12

+0

你爲什麼認爲答案不同?所引用的API是否不返回經度和緯度? – 2010-07-12 21:55:54

回答

6

您可以使用谷歌API: http://code.google.com/apis/ajax/documentation/#ClientLocation

編輯

例子:

<script type="text/javascript" 
    src="http://www.google.com/jsapi?key=ABCDEFG"></script> 
<script type="text/javascript"> 
google.load("maps", "2.x", {callback: initialize}); 

function initialize() { 
    if (google.loader.ClientLocation) { 
     var lat = google.loader.ClientLocation.latitude; 
     var long = google.loader.ClientLocation.longitude; 
     alert ("lat: " + lat + "\nlong: " + long); 
    } 
    else { alert ("not available"); } 
} 

+0

我可以在不加載整個Google Map框架的情況下使用它嗎?閱讀文檔,目前還不清楚 – Tim 2010-07-12 21:53:53

+0

中存在的google.loader.ClientLocation模塊它在任何API模塊中都不存在,它是API加載器框架的一部分。這是google.load的姊妹命令。 – Josiah 2010-07-12 22:04:24

+0

那麼如何在沒有其他模塊的情況下加載JUST ClientLocation? – Tim 2010-07-12 22:06:51

7

這裏有幾個簡單的電話...

調用示例: -

返回的XML(ipinfodb)的實施例: -

<Response> 
    <Ip>122.169.8.137</Ip> 
    <Status>OK</Status> 
    <CountryCode>IN</CountryCode> 
    <CountryName>India</CountryName> 
    <RegionCode>10</RegionCode> 
    <RegionName>Haryana</RegionName> 
    <City>Kaul</City> 
    <ZipPostalCode></ZipPostalCode> 
    <Latitude>29.85</Latitude> 
    <Longitude>76.6667</Longitude> 
    <Timezone>0</Timezone> 
    <Gmtoffset>0</Gmtoffset> 
    <Dstoffset>0</Dstoffset> 
</Response> 
+0

截至2014年12月30日,似乎freegeoip.net服務不再有效。然而,ipinfodb.com服務仍然可用,但是,它看起來像他們已經改變了他們的API網址。 – hooknc 2014-12-30 19:40:28

+0

死鏈接不再有效 – 2017-11-01 15:20:07

2

你可以找到一個免費的地理數據庫,這裏總是更新 http://www.maxmind.com/app/geolitecity

,你可以通過下面的在線創建一個新的C#的服務,使用該地理DB像 http://www.maxmind.com/app/csharp

你可以嘗試鏈接 http://www.maxmind.com/app/lookup_city

+0

非這些返回使用IP地址 – 2013-03-04 14:12:27

+0

@ geo171緯度/經度位置:我認爲你需要以下網站之一來獲得緯度/經度 服務:http:// api。 hostip.info/get_html.php?ip=12.215.42.19&position=true 網站: http://www.digitalpoint.com/tools/geovis... http://www.geobytes.com/IpLocator.htm http://www.melissadata.com/lookups/iploc... http://www.ip2location.com/free.asp http://www.hostip.info/ http://www.networldmap.com/ TryIt.htm http://www.private.org.il/IP2geo.html http://www.internetfrog.com/ http://webtools.live2support.com/misc_lo... http://www.seomoz.org/ip2loc/ip2loc.php http://www.webyield.net/domainquery.html – 2013-03-05 16:17:42

19

另一個免費的REST API和城市精確信息將是http://freegeoip.net請求相當直接。你會使用類似

http://freegeoip.net/{format}/{ip_or_hostname} 

進行地理編碼IP地址,其中格式可以是csvxmljson。他們的網站有所有的細節。

[更新:] FreeGeoIP.net在過去作爲一項公共服務並沒有持續存在。然而,該軟件始終是開源的,可在Github上獲得。如果您需要高度可靠的服務或您的用例超過每小時15.000個請求的當前配額,使用Docker運行本地安裝相當容易。

+1

截至12/30/2014年,似乎freegeoip.net服務不再有效。然而,Andy的響應中的ipinfodb.com服務仍然可用。 – hooknc 2014-12-30 19:40:10

+1

截至2/20/2016,freegeoip.net服務似乎工作正常。 – cengel 2016-02-20 18:42:58

+0

如何向本網站發送多個IP地址? – 2016-03-06 20:27:53

5

在我的網站上,我使用http://ip-api.com/來獲取IP地址的位置。 他們有很好的限制(每分鐘最多150個請求)。 Ipinfo.io免費只有少於1000個請求每天

這是輸出示例:

(
    [as] => AS8075 Microsoft Corporation 
    [city] => Redmond 
    [country] => United States 
    [countryCode] => US 
    [isp] => Microsoft bingbot 
    [lat] => 47.674 
    [lon] => -122.1215 
    [org] => Microsoft bingbot 
    [query] => 157.55.39.67 
    [region] => WA 
    [regionName] => Washington 
    [status] => success 
    [timezone] => America/Los_Angeles 
    [zip] => 98052 
) 

這是PHP代碼,你可以使用:

$ip = $_SERVER['REMOTE_ADDR']; 
$result = json_decode(file_get_contents("http://ip-api.com/json/{$ip}")); 
//print_r ($result); 
echo "{$result->lat},{$result->lon}";//48.156,17.142 
+2

現在限制爲150,如果超出限制,他們會禁止你([證明](http://ip-api.com/docs/)) '我們的系統將自動禁止任何IP地址每分鐘處理超過150個請求。要取消你的IP請點擊這裏。「# – 2016-03-12 14:28:27

+0

tnks @ValentineKonov,我已經更新了答案。 – 2016-06-15 07:46:57

+0

只是爲了確認:與上面列出的一些相反,這一個仍然在運行。提供相當全面的提要。 – 2016-08-18 11:21:27