2012-02-21 74 views
2

有人可以舉例說明如何使用IP查找而不是地理定位在JavaScript中進行國家級地理定位?使用IP查找JavaScript的國家級地理定位?

我一直對JSONP跨站點限制犯規,並且我還沒有在StackOverflow上找到好的答案。我希望這樣的事情:

$.getJSON("http://freegeoip.net/json/", function(rs){ 
    if (rs.country_name) { 
     alert(rs.ip, rs.country_name); 
    } 
    }) 
    .error(function(e){ 
    }); 

但這是不允許的,因爲它不是JSONP。有誰知道一個(最好是免費的)JSONP服務?它不一定是絕對防彈的。

+0

之前有人建議:我不想使用HTML5(或不是HTML5,但你知道我的意思)地理定位。 – Richard 2012-02-21 21:57:58

回答

3

只需添加回調參數即可。

從freegeoip網頁:

JSON回調是通過將回調參數的查詢字符串

+0

謝謝,沒有發現! – Richard 2012-02-22 11:45:13

+0

或者您可以使用其他地理位置API,如我們的https://ip-api.io/ – 2017-08-09 20:39:43

1

http://geoiplookup.wikimedia.org/會像jsonp服務(它不是真正的jsonp),但我不確定是否稱它爲「免費」。他們不會喜歡從其他網站的重度使用...

當然,它可能甚至有優勢被緩存,因爲維基百科是一個經常使用的網站,但我會建議安裝一個自己的查找服務。

+0

很好找!這很容易使用。只需創建一個新的'script'元素並將其設置爲源!真棒。但是,如果您期望大容量,或者如果您從您的網站獲利,則最好不要使用此功能。 – caleb 2012-02-21 22:11:21

+0

你一定要在這裏小心 - 我找不到有關第三方使用此域名的任何政策,但我懷疑維基媒體希望爲每個人提供IP查詢。此外,完全軼事,但維基媒體的位置對我來說是700英里; Maxmind的錯誤只有2.5米。 – josh3736 2012-02-21 22:19:01

1

你可以使用這個免費服務的支持,它的快速和也適用於HTTPS。

$.get("https://api.teletext.io/api/v1/geo-ip", function(response) { 
    console.log(response); 
});