Этот API-сервис предлагает простую и эффективную интеграцию IP-геолокации в ваши скрипты или веб-сайты. Попрощайтесь с хлопотами, связанными с настройкой и поддержкой локальных библиотек GeoIP. Наша система, работающая на основе искусственного интеллекта, собирает и анализирует данные из множества источников, обеспечивая получение наиболее точной геолокационной информации. База данных обновляется практически в режиме реального времени, гарантируя актуальную точность без ручного вмешательства. Гибкие и удобные для разработчиков возможности интеграции позволят вам без труда внедрить геолокационные возможности и сосредоточиться на создании лучшего пользовательского опыта.
Вы можете вызвать API, отправив GET запрос http://ipwho.is/[IP address]
[IP address] может быть IPv4 или IPv6 адресом, оставьте параметр пустым чтобы использовать текущий IP-адрес.
# Получить подробности для 8.8.4.4
$ curl"http://ipwho.is/8.8.4.4"
# Получите подробную информацию о вашем собственном IP-адресе
$ curl"http://ipwho.is/"
Наш API доступен через защищенное соединение HTTPS. Просто добавьте https:// к URL-адресам запросов.
Живой пример
Вы можете отредактировать этот запрос и поэкспериментировать с параметрами:
Обратите внимание: для наглядности мы включили все доступные поля в приведенный выше ответ API. В зависимости от вашего плана подписки ответ API может отличаться.
Возвращаемые данные
В зависимости от вашего плана подписки и параметров, выбранных вами для запроса API, ответ будет содержать несколько разных полей. Ниже приведен список всех доступных полей ответа API:
название
описание
ip
Запрашиваемый IP адрес (например 8.8.4.4)
success
В случае успешного выполнения запроса будет возвращено значение true, а в случае неудачи — значение false.
message
Включается только в том случае, если success равен false Может быть одним из следующих: Invalid IP address, You've hit the monthly limit, Reserved range
type
Тип IP адреса (IPv4 или IPv6)
continent
Название континента (например North America)
continent_code
Двухбуквенный (ISO 3166-1) код континента (например NA)
country
Название страны (например United States)
country_code
Двухбуквенный (ISO 3166-1) код страны (например US)
region
Название региона/штата (например California)
region_code
Код штата/региона (ISO 3166-2), если он доступен (например CA)
city
Название города (например Mountain View)
latitude
Приблизительная (WGS84) широта местоположения, связанного с IP (например 37.3860517)
longitude
Приблизительная (WGS84) долгота местоположения, связанного с IP (например -122.0838511)
is_eu
Возвращает true или false в зависимости от того, находится ли страна, связанная с IP, в Европейском союзе.
postal
Почтовый индекс, связанный с местоположением.
calling_code
Телефонный код страны (например 1)
capital
Столица страны (например Washington)
borders
Двухбуквенный (ISO 3166-1) код стран, граничащих со страной, связанной с этим IP (например CA,MX)
flag > img
Возвращает URL-адрес, ведущий к SVG изображению флага страны.
flag > emoji
Эмодзи-версия флага страны (например 🇺🇸)
flag > emoji_unicode
Юникод значение значка эмодзи для флага.
connection > asn
Номер автономной системы (AS) (например 15169)
connection > org
Название организации, владеющей AS для анализируемого IP-адреса (например Google LLC)
connection > isp
Имя провайдера, связанного с IP (например Google LLC)
connection > domain
Доменное имя, связанное с организацией, которой принадлежит IP-адрес (например google.com)
timezone > id
Идентификатор часового пояса, связанного с местоположением (например America/Los_Angeles)
timezone > abbr
Аббревиатура часового пояса (например PDT)
timezone > is_dst
true или false в зависимости от того, учитывался ли переход на летнее время.
timezone > offset
Смещение от UTC (в секундах) для данного местоположения (например -25200)
timezone > utc
Смещение часового пояса UTC (например -07:00)
timezone > current_time
Точная текущая дата и время (в формате ISO 8601), связанные с местоположением (например 2022-04-22T14:31:48-07:00)
currency > name
Название валюты (например US Dollar)
currency > code
Трехбуквенный (ISO 4217) код валюты (например USD)
currency > symbol
Родной (местный) символ данной валюты (например $)
currency > plural
Множественная версия названия валюты (например US dollars)
currency > exchange_rate
Текущий курс по отношению к доллару США.
security > anonymous
Логическое значение со значением true, если proxy, vpn или tor равны true.
security > proxy
true или false в зависимости от того, является ли IP-адрес известным прокси-сервером или любым другим типом.
security > vpn
Возвращает true, если искомый IP-адрес используется VPN, и false в противном случае.
security > tor
true или false в зависимости от того, является ли IP-адрес известным выходным узлом или принадлежит сети Tor.
security > hosting
true или false в зависимости от того, используется ли IP-адрес для хостинга.
Указать формат вывода
Используя параметр GET output, вы можете переключать формат результатов API между JSON (по умолчанию), XML и CSV. Если вы используете JSON, этот параметр можно не указывать.
Например:
output=xml
output=csv
output=json
Указать поля ответа
Вы можете ограничить результаты API определенными полями данных, если вам не нужно отслеживать все данные. В этом случае вам нужно добавить параметр GET fields к URL-адресу API-запроса и указать определенное поле или список полей через запятую.
Например:
fields=country,city,flag.emoji
fields=city,timezone
fields=ip,timezone.current_time
JSONP Callback
API поддерживает функцию обратного вызова (JSONP). Просто добавьте параметр GET callback к URL-адресу запроса API и задайте для него имя вашей функции.
Например:
callback=getIPinfo
Локализация
Локализацию city, region, country, capital и continent можно запросить, установив для GET параметра lang одно из следующих значений:
язык
описание
демо
en
English (по умолчанию)
ru
Русский (Russian)
de
Deutsch (German)
es
Español (Spanish)
pt-BR
Português - Brasil (Portuguese)
fr
Français (French)
zh-CN
中国 (Chinese)
ja
日本語 (Japanese)
Включить обнаружение угроз
Доступно в планах: Бизнес и Премиум
Включение полей данных безопасности (proxy, vpn, tor, hosting) для обнаружения угроз. Это позволит защитить ваш сайт или приложение от злоупотреблений в виде обхода бана, сокрытия реального IP-адреса, парсинга сайта и т.д. Для того, чтобы использовать эту возможность, добавьте GET-параметр security к URL-адресу запроса API и установите для него значение 1.
Например:
security=1
Статистика запросов в ответе API
Доступно в планах: Базовый, Бизнес и Премиум
Чтобы использовать эту возможность, добавьте параметр GET rate к URL-адресу запроса API и установите для него значение 1. Вот пример (в формате JSON) информации в теле ответа API:
Общее количество запросов к API, которым ограничена ваша учетная запись за указанный период времени (месяц).
rate > remaining
Количество запросов к API, оставшихся за указанный период времени (месяц).
Лимиты
Вы можете пользоваться нашим API бесплатно до 10,000 запросов в месяц (идентификация по IP-адресу и заголовку Referer).
Мы против коммерческого использования бесплатного плана. Воспользуйтесь нашим профессиональным сервисом, чтобы получить доступ к массовой геолокации IP-адресов, статистике использования, расширенным возможностям и коммерческой поддержке.
Примеры кода
Ниже приведены простые примеры кода на популярных языках:
var ip = '8.8.4.4'; // Оставьте пустым для поиска текущего IP-адресаvar XMLHttp = new XMLHttpRequest();
XMLHttp.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
var ipwhois = JSON.parse(this.responseText);
console.log(ipwhois.country + ' ' + ipwhois.flag.emoji); // Выведет: United States 🇺🇸
}
};
XMLHttp.open('GET', 'https://ipwho.is/' + ip, true);
XMLHttp.send();
var ip = '8.8.4.4'; // Оставьте пустым для поиска текущего IP-адреса$.ajax({
method: 'GET',
contentType: 'application/json',
url: 'https://ipwho.is/' + ip,
dataType: 'json',
success: function(ipwhois) {
console.log(ipwhois.country + ' ' + ipwhois.flag.emoji); // Выведет: United States 🇺🇸
}
});
import re
import json
from urllib2 import urlopen
ip = '8.8.4.4';
response = urlopen('http://ipwho.is/'+ip)
ipwhois = json.load(response)
# Выведет: United States 🇺🇸
print '{0} {1}'.format(ipwhois['country'],ipwhois['flag']['emoji'])
PHP
Javascript
// Список IP-адресов для запроса, до 100$ips = array('8.8.4.4','1.1.1.1','2c0f:fb50:4003::');
$endpoint = 'http://ipwhois.pro/bulk?key=YOUR_API_KEY';
$options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-Type: application/json',
'content' => json_encode($ips)
)
);
$response = json_decode(file_get_contents($endpoint, false, stream_context_create($options)), true);
foreach($response as $ipwhois)
{
echo $ipwhois['ip'] . ' - ' . $ipwhois['country'] . ' ' . $ipwhois['flag']['emoji']."\n";
// Выведет:// 8.8.4.4 - United States 🇺🇸// 1.1.1.1 - Australia 🇦🇺// 2c0f:fb50:4003:: - Kenya 🇰🇪
}
// Список IP-адресов для запроса, до 100
var IPs = ['8.8.4.4','1.1.1.1','2c0f:fb50:4003::'];
var endpoint = 'https://ipwhois.pro/bulk?key=YOUR_API_KEY';
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
var response = JSON.parse(this.responseText);
response.forEach(function(ipwhois) {
console.log(ipwhois.ip + ' - ' + ipwhois.country + ' ' + ipwhois.flag.emoji);
// Выведет:// 8.8.4.4 - United States 🇺🇸// 1.1.1.1 - Australia 🇦🇺// 2c0f:fb50:4003:: - Kenya 🇰🇪
});
}
};
var data = JSON.stringify(IPs);
xhr.open('POST', endpoint, true);
xhr.send(data);