IP для определения местоположения с использованием Javascript - PullRequest
36 голосов
/ 08 февраля 2011
<script type="application/javascript">
    function getip(json){
      alert(json.ip); // alerts the ip address
    }
</script>

<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"></script>

Я могу получить IP-адрес пользователя по этому коду ...

Я хочу найти местоположение этого IP-адреса.Как я могу?

Ответы [ 14 ]

42 голосов
/ 08 февраля 2011

Вы можете отправить полученный IP-адрес в службу онлайн-геолокации, такую ​​как http://www.geoplugin.net/json.gp?ip=<your ip here>&jsoncallback=<suitable javascript function in your source>, затем включить возвращаемый источник, который запустит функцию, указанную в jsoncallback с информацией о геолокации.В качестве альтернативы, вы можете захотеть взглянуть на особенности геолокации HTML5 - вы можете увидеть его демонстрацию в действии здесь .Преимущество этого заключается в том, что вам не нужно отправлять запросы на сторонние серверы, но это может не работать в браузерах, которые не поддерживают HTML5.

26 голосов
/ 31 января 2014

Бесплатный ip-сервис геолокации сообщества с открытым исходным кодом, работающий в базе данных MaxMind, доступен здесь: https://ipstack.com/

Пример

https://api.ipstack.com/160.39.144.19

Ограничение

10 000 запросов в месяц

9 голосов
/ 04 сентября 2015

Хочу отметить, что если вы используете http://freegeoip.net/,, вам не нужно указывать для него IP-адрес местонахождения клиента. Просто попробуйте это:

1) http://freegeoip.net/xml/

2) http://freegeoip.net/json/

3) http://freegeoip.net/csv/

Однако я не могу получить информацию с помощью вызовов AJAX, возможно, из-за какой-то политики перекрестного происхождения. Очевидно, они не разрешили публичный доступ к своей системе.

7 голосов
/ 05 июля 2016

Это довольно легко с API , который отображает IP-адрес в местоположение. Запустите фрагмент, чтобы получить город и страну для IP-адреса в поле ввода.

$('.send').on('click', function(){

  $.getJSON('https://ipapi.co/'+$('.ip').val()+'/json', function(data){
      $('.city').text(data.city);
      $('.country').text(data.country);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input class="ip" value="8.8.8.8">
<button class="send">Go</button>
<br><br>
<span class="city"></span>, 
<span class="country"></span>
6 голосов
/ 24 ноября 2014

На тот случай, если вы не смогли выполнить вышеуказанный код, вот простой способ использовать его с jquery:

$.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?",
    function (data) {
        for (var i in data) {
            document.write('data["i"] = ' + i + '<br/>');
        }
    }
);
3 голосов
/ 06 марта 2017

Лучший способ - пропустить "среднего человека" (ip)

jQuery.get("http://ipinfo.io", function(response) {
    console.log(response.city);
}, "jsonp");

Это дает вам IP , город , страну и т. Д.

2 голосов
/ 05 ноября 2017

Довольно недорогой вариант - использовать API ipdata.co , бесплатно до 1500 запросов в день.

В этом ответе используется «тестовый» ключ API, которыйочень ограничен и предназначен только для тестирования нескольких звонков. Зарегистрируйтесь для получения бесплатного ключа API и получите до 1500 запросов в день на разработку.

$.get("https://api.ipdata.co?api-key=test", function (response) {
    $("#ip").html("IP: " + response.ip);
    $("#city").html(response.city + ", " + response.region);
    $("#response").html(JSON.stringify(response, null, 4));
}, "jsonp");
ipdata.co - IP geolocation API



2 голосов
/ 08 февраля 2011

Об этом должна позаботиться любая из следующих ссылок:

http://ipinfodb.com/ip_location_api_json.php

http://www.adam -mcfarland.net / 2009/11/19 / simple-ip-geolocation-using-javascript-and-the-google-ajax-search-api /

Эти ссылки имеют учебные пособия для получения местоположения пользователя через Javascript.Тем не менее, они делают это через API для внешней службы данных.Если у вас сайт с очень высоким трафиком, вы можете самостоятельно разместить данные (или получить услугу API премиум-класса).Чтобы разместить все самостоятельно, вам нужно будет разместить базу данных с IP-геолокацией и использовать ajax для передачи местоположения пользователей в Javascript.Если вы хотите именно такой подход, вы можете получить бесплатную базу данных IP-информации ниже:

http://www.ipinfodb.com/ip_database.php

Обратите внимание, что этот метод требует периодического обновления базы данных, чтобы остатьсяточное отслеживание ips-адресов.

1 голос
/ 04 сентября 2017
    $.getJSON('//freegeoip.net/json/?callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});
1 голос
/ 08 февраля 2011

вы можете использовать ipinfodb после получения вашего ключа API вы можете запросить местоположение для определенного IP-адреса, такого как http://api.ipinfodb.com/v2/ip_query.php?key=" + apiKey + "&ip=" + ip + "&output=xml, затем вы можете извлечь местоположение из xml-ответа

...