Geo

Матеріал з Wiki.Zina
Перейти до навігації Перейти до пошуку

Анализ точности геолокации

[ред. | ред. код]

https://www.maxmind.com/en/geoip2-city-accuracy-comparison

Получить IP адрес посетителя в JavaScript

[ред. | ред. код]

Сервисы, которые показывают IP адрес бесплатно и без ограничений.

ipify.org

[ред. | ред. код]

https://www.ipify.org/

$.getJSON('https://api.ipify.org?format=jsonp&callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});
<script type="application/javascript">
  function getIP(json) {
    document.write("My public IP address is: ", json.ip);
  }
</script>

<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP"></script>

jsonip.com

[ред. | ред. код]

https://getjsonip.com/

<script type="text/javascript">
$.getJSON('https://jsonip.com/?callback=?', function(json) {
  console.log("My IP is " + json['ip']);
});
</script>

seeip.org

[ред. | ред. код]

https://seeip.org/

Получить подробные геоданные в JavaScript

[ред. | ред. код]

Наиболее полный список сервисов (Stack Overflow)

Определяют все, включая IP, страну, город и т.п. — только бесплатные и только HTTPS:

URL Обязательная
регистрация
Лимит Примечания
#ip.seeip.org/geoip нет неограниченно https://ip.seeip.org/geoip
#ipdata.co да 1500 в день Кабинета нет, key высылают на email
#ipfind.com да 100 в день Простой код, личный кабинет
#ipgeolocation.io да 1000 в день Код см. на Stack Overflow
#geo.ipify.org да 1000 в месяц
#ipinfodb.com да 2 запроса в секунду Полностью бесплатная версия https://www.ip2location.com/. Код см. на Stack Overflow.
#ipinfo.io да 50 000 в месяц
100 000 в мес за ссылку
Удобный код. Chrome ругается на куки
#ipregistry.co да первые 100 000 бесплатно,
дальше - 10$ за 100 тыс,
100$ за 2 млн
Очень удобный код. Возвращает много данных, в т.ч. по браузеру. Есть возможность ограничения использование API key по IP адресам.

ip.seeip.org/geoip

[ред. | ред. код]

https://seeip.org/

  • Анонимно
  • Без ограничений
<script type="text/javascript">
  $.get("https://ip.seeip.org/geoip", function(response) {
    console.log(response.ip, response.country, response.city);
  }, "jsonp");
</script>

Пример данных:

geodata.ip = 93.76.51.79
geodata.country = Ukraine
geodata.city = Dnipro

ipdata.co

[ред. | ред. код]

https://ipdata.co/

  • Обязательная регистрация
  • 1500 запросов в день
  • Кабинета нет, API Key высылают на email
<script type="text/javascript">
  var request = new XMLHttpRequest();
  request.open('GET', 'https://api.ipdata.co/?api-key=2529c7456600baab882afe3bc1f8a4405f0fb250bb69a8ee1aa85d53');
  request.setRequestHeader('Accept', 'application/json');
  request.onreadystatechange = function () {
    if (this.readyState === 4) {
      console.log(this.responseText);
    }
  };
  request.send();
</script>

ipfind.com

[ред. | ред. код]

https://ipfind.com/

  • Обязательная регистрация
  • 100 запросов в день
  • Простой код, личный кабинет
<script type="text/javascript">
  $.getJSON("https://ipfind.co/?ip=93.76.51.79&auth=72967002-10d4-48c7-9c4c-3697152ac696", function(result){
    console.log('res', result);
  });
</script>

ipgeolocation.io

[ред. | ред. код]

https://ipgeolocation.io/

  • Обязательная регистрация
  • 1000 запросов в день, 30 000 в месяц
  • Код см. на Stack Overflow
<script type="text/javascript">
  $.getJSON('https://api.ipgeolocation.io/ipgeo?apiKey=5783f92c784e4304abec68c9ffe52a2e', function(data) {
   console.log(JSON.stringify(data, null, 2));
  });
</script>

geo.ipify.org

[ред. | ред. код]

https://geo.ipify.org/

  • Обязательная регистрация
  • 1000 запросов в месяц
<script type="text/javascript">
  $.getJSON('https://api.ipify.org?format=jsonp&callback=?', function(data) {
    console.log(JSON.stringify(data, null, 2));
  });
  function getIP(json) {
    document.write("My public IP address is: ", json.ip);
  }
</script>

ipinfodb.com

[ред. | ред. код]

https://ipinfodb.com/

  • Обязательная регистрация
  • 2 запроса в секунду
  • Урезанная, но полностью бесплатная версия платного сервиса https://www.ip2location.com/.
<script type="text/javascript">
  $.getJSON('https://api.ipinfodb.com/v3/ip-city/?key=6a5b74ab615d71393ca8a2d7e592e2af027bb6fe14651ce9e5f3937a02fd416b&format=json&callback=?', function(data) {
    console.log(JSON.stringify(data, null, 2));
  });
</script>

ipinfo.io

[ред. | ред. код]

https://ipinfo.io/

  • Обязательная регистрация
  • 50 000 в месяц, 100 000 в месяц за обратную ссылку
  • Удобный код. Chrome ругается на cookie
<script type="text/javascript">
  $.getJSON('https://ipinfo.io/json?token=ca733ea0de0b1b', function(data) {
    console.log(JSON.stringify(data, null, 2));
  });
  $.get("https://ipinfo.io?token=ca733ea0de0b1b", function(response) {
    console.log(response.ip, response.country, response.city);
  }, "jsonp");
</script>

Пример получаемых данных:

geodata.ip = 93.76.51.79
geodata.country = UA
geodata.city = Dnipro

ipregistry.co

[ред. | ред. код]

https://ipregistry.co/

  • Обязательная регистрация
  • Первые 100 000 бесплатно, дальше — 10$ за 100 тыс, 100$ за 2 млн
  • Удобный код. Возвращает много данных, в т.ч. по браузеру: https://api.ipregistry.co/?key=tryout&pretty=true. Есть возможность ограничения использование API Key по IP адресам.
<script type="text/javascript">
  $.getJSON( "https://api.ipregistry.co/?key=7wdwwdm5u3zzpb", function (json) {
    console.log("Your city is " + json['location']['city'])
  });
</script>

Пример получаемых данных:

geodata.ip = 93.76.51.79
geodata.location.city = Dnipro
geodata.location.country.name = Ukraine
geodata.location.country.flag.emoji = 🇺🇦
geodata.user_agent.device.type = desktop
geodata.user_agent.device.name = Linux Desktop
geodata.user_agent.os.name = Linux
geodata.user_agent.os.version = version
geodata.user_agent.name = Chrome
geodata.user_agent.version_major = 81