Вступление

Используйте наш API для быстрой и простой интеграции определения местоположения посетителя по IP адресу, в ваш скрипт или веб-сайт. Избавьте себя от необходимости настраивать локальные библиотеки GeoIP и забудьте о регулярном обновлении данных. Наша нейросеть анализирует десятки источников и обновляет базу данных практически в режиме реального времени.


Форматы данных

Вы можете вызвать API, отправив GET запрос http://ipwhois.app/json/{IP}

{IP} может быть IPv4 или IPv6 адресом, оставьте параметр пустым чтобы использовать текущий IP-адрес.


Пример

Вы можете отредактировать этот запрос и поэкспериментировать с параметрами

GET
Ответ
{
  "ip": "8.8.4.4",
  "success": true,
  "type": "IPv4",
  "continent": "North America",
  "continent_code": "NA",
  "country": "United States",
  "country_code": "US",
  "country_flag": "https://cdn.ipwhois.io/flags/us.svg",
  "country_capital": "Washington",
  "country_phone": "+1",
  "country_neighbours": "CA,MX,CU",
  "region": "California",
  "city": "Mountain View",
  "latitude": 37.3860517,
  "longitude": -122.0838511,
  "asn": "AS15169",
  "org": "Google LLC",
  "isp": "Google LLC",
  "timezone": "America/Los_Angeles",
  "timezone_name": "Pacific Standard Time",
  "timezone_dstOffset": 0,
  "timezone_gmtOffset": -28800,
  "timezone_gmt": "GMT -8:00",
  "currency": "US Dollar",
  "currency_code": "USD",
  "currency_symbol": "$",
  "currency_rates": 1,
  "currency_plural": 0
}

Возвращенные данные

API может возвращать следующие поля и значения

название описание
ip Запрашиваемый IP адрес (пример 8.8.4.4)
success true или false
message Включается только тогда, когда success является false
Может быть одним из следующих: invalid IP address, you've hit the monthly limit
type Тип IP адреса (IPv4 или IPv6)
continent Название континента (пример North America)
continent_code Двухбуквенный код континента (пример NA)
country Название страны (пример United States)
country_code Двухбуквенный код страны (пример US)
country_capital Столица страны (пример Washington)
country_phone Телефонный код страны (пример +1)
country_neighbours Соседние страны (пример CA,MX,CU)
region Регион/штат (пример Virginia)
city Город (пример Ashburn)
latitude Широта (пример 39.0437567)
longitude Долгота (пример -77.4874416)
as Номер AS (пример AS15169)
org Название организации (пример Level 3 Communications)
isp Имя провайдера (пример Level 3 Communications)
timezone Часовой пояс (пример America/New_York)
timezone_name Полное название часового пояса (пример Eastern Standard Time)
timezone_dstOffset Смещение для летнего времени в секундах.
timezone_gmtOffset Смещение от UTC (в секундах) для данного местоположения. (пример -18000)
timezone_gmt Часовой пояс GMT. (пример GMT -5:00)
currency Название валюты страны. (пример US Dollar)
currency_code Код валюты страны. (пример USD)
currency_symbol Символ валюты страны. (пример $)
currency_rates Текущий курс по отношению к доллару США.
currency_plural Название валюты во множественном числе. (пример US dollars)
completed_requests Количество обращений к API за текущий месяц (Обновляется раз в 2 минуты).

Укажите поля ответа

Если вам не требуются все возвращаемые поля, вы можете ограничить набор результатов API определенными полями, для этого добавьте параметр GET objects к URL-адресу запроса к API и установите для него определенное поле или список полей через запятую.

Например: objects=country,city,timezone


JSONP Callback

API поддерживает функцию обратного вызова (JSONP). Просто добавьте параметр callback к URL-адресу запроса API и задайте для него имя вашей функции.

Например: callback=getIPinfo


Локализация

Локализацию city, region, country и continent можно запросить, установив для GET параметра lang одно из следующих значений:

язык описание демо
en English (default)
ru Русский (Russian)
de Deutsch (German)
es Español (Spanish)
pt-BR Español - Argentina (Spanish)
fr Français (French)
zh-CN 中国 (Chinese)
ja 日本語 (Japanese)

Лимиты

Вы можете пользоваться нашим API бесплатно до 10,000 запросов в месяц.

Мы против коммерческого использования бесплатного плана. Пожалуйста, ознакомьтесь с нашим профессиональным сервисом для доступа к SSL, расширенным возможностям и коммерческой поддержки.


Примеры кода

Ниже приведены простые примеры кода на популярных языках:

  • PHP
  • Javascript
  • jQuery
  • Python
PHP (CURL)
$ip = $_SERVER['REMOTE_ADDR'];

$ch = curl_init('http://ipwhois.app/json/'.$ip);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close($ch);

$ipwhois_result = json_decode($json, true);

// Вывод кода страны, поле "country_code"
echo $ipwhois_result['country_code'];
Javascript (XMLHttpRequest)
var ip = ''; // Текущий IP
var XMLHttp = new XMLHttpRequest();

XMLHttp.onreadystatechange = function() {
	if (this.readyState == 4 && this.status == 200) {
		var json = JSON.parse(this.responseText);
		// Вывод кода страны, поле "country_code"
		alert(json.country_code);
	}
};
XMLHttp.open("GET", "http://ipwhois.app/json/" + ip, true);
XMLHttp.send();
Javascript (jQuery.ajax)
var ip = ''; // Текущий IP

// Отправка API запроса
$.ajax({
	method: 'GET',
	contentType: 'application/json',
	url: 'http://ipwhois.app/json/' + ip,
	dataType: 'json',
	success: function(json) {
	    // Вывод кода страны, поле "country_code"
	    alert(json.country_code);
	}
});
Python
import urllib2
import json

ip = "8.8.4.4";

# Отправка API запроса
response = urllib2.urlopen("http://ipwhois.app/json/"+ip)
ipgeolocation = json.load(response)

# Вывод кода страны, поле "country_code"
print ipgeolocation["country_code"]