Подтвердить что ты не робот

IP-адрес с использованием Javascript

<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>

Я могу получить User IP с помощью этого кода...

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

пример

https://api.ipstack.com/160.39.144.19

ограничение

10000 запросов в месяц

Ответ 3

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

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

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

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

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

Ответ 4

Это довольно легко с 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>

Ответ 5

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

$.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?",
    function (data) {
        for (var i in data) {
            document.write('data["i"] = ' + i + '<br/>');
        }
    }
);

Ответ 6

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

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

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

Ответ 7

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

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 Geolocation и использовать ajax для подачи местоположения пользователей в Javascript. Если это подход, который вы хотите предпринять, вы можете получить бесплатную базу данных о IP-информации ниже:

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

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

Ответ 8

Довольно недорогой вариант - использовать 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");
<h1><a href="https://ipdata.co">ipdata.co</a> - IP geolocation API</h1>

<div id="ip"></div>
<div id="city"></div>
<pre id="response"></pre>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Ответ 10

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

Ответ 11

    $.getJSON('//freegeoip.net/json/?callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

Ответ 12

Вам нужна база данных, которая содержит IP-адрес и расположение. Или вы можете использовать множество онлайн-инструментов для достижения этого, например: http://www.ipligence.com/geolocation

Google возвращает множество результатов по ключевым словам: "Местоположение IP"

Ответ 14

Я бы порекомендовал вам использовать это, чтобы найти местоположение IP-адреса.

Его довольно просто использовать, с высокой скоростью запросов, минимальной задержкой и обширной еженедельно обновляемой базой данных. Помимо платных планов, он также имеет бесплатный план 45000 запросов в месяц.

Сначала вам нужно зарегистрироваться на https://ipgeolocation.io/ и выбрать желаемый тариф.

Затем войдите в систему и скопируйте ключ API с панели инструментов.

Теперь используйте этот ключ API, чтобы найти местоположение IP-адреса следующим образом:

curl 'https://api.ipgeolocation.io/ipgeo?apiKey=API_KEY&ip=1.1.1.1'

Вы получите ответ JSON следующим образом:

{
    "ip": "8.8.8.8",
    "hostname": "google-public-dns-a.google.com",
    "continent_code": "NA",
    "continent_name": "North America",
    "country_code2": "US",
    "country_code3": "USA",
    "country_name": "United States",
    "country_capital": "Washington",
    "state_prov": "California",
    "district": "",
    "city": "Mountain View",
    "zipcode": "94043",
    "latitude": "37.4229",
    "longitude": "-122.085",
    "is_eu": false,
    "calling_code": "+1",
    "country_tld": ".us",
    "languages": "en-US,es-US,haw,fr",
    "country_flag": "https://ipgeolocation.io/static/flags/us_64.png",
    "isp": "Level 3 Communications",
    "connection_type": "",
    "organization": "Google Inc.",
    "geoname_id": "5375480",
    "currency": {
        "code": "USD",
        "name": "US Dollar",
        "symbol": "$"
    },
    "time_zone": {
        "name": "America/Los_Angeles",
        "offset": -8,
        "current_time": "2019-01-14 03:30:00.135-0800",
        "current_time_unix": 1547465400.135,
        "is_dst": false,
        "dst_savings": 1
    }
}

Примечание. Некоторые дополнительные преимущества этого решения также включают API часовых поясов и API астрономии.