API Получения информации о местоположении посетителя
на основе его IP адреса (API координаты)

Для получения координат посетителя(широта, долгота, город) Вы можете воспользоваться нашим API

Большинство API функций сервиса htmlweb.ru совершенно бесплатны. Идентификация нужна для исключения злоупотреблений и позволяет разделить количество запросов от разных пользователей. Ограничения на бесплатные запросы и тарификация описана здесь.

Для идентификации используется API_KEY из_профиля. API_KEY может быть передан как GET так и POST запросом.
Не размещайте ключ API_KEY в открытом доступе и в javascript. Он фактически заменяет ваши логин пароль и дает возможность использовать весь функционал нашего сайта от вашего аккаунта, включая платные функции.

Ключи выбора формата:

  1. html - HTML-формат.
  2. json - JSON-формат
  3. xml - XML-формат

Для указания кодирования ответа в нужном вам формате добавьте в запрос параметр html или json или xml, например:

http://htmlweb.ru/geo/api.php?ip&html&charset=utf-8&api_key=xxxx

При возврате в формате JSON возврашается заголовок header('Access-Control-Allow-Origin: *') - разрешающий кроссдоменные запросы.

Ключ выбора кодировки charset=:

  1. windows-1251 по умолчанию всё отдается в кодировке utf-8
  2. utf-8 unicode - кодировка UTF-8. Пример: charset=utf-8
  3. а также другие: koi-8, ISO-8859-1, ISO-8859-15, cp866, cp1252, KOI8-R

fields - какие поля включать в ответ, например:
http://htmlweb.ru/geo/api.php?ip&sql=pb_city&fields=id,name,english,area,rajon,country

Если Вам нужен другой формат или другая кодировка, а также обо всех найденных проблемах и пожеланиях сообщайте нам.



Структура API запроса для получения информации по ip адресу:

http://htmlweb.ru/geo/api.php?html&ip=IP_АДРЕС&api_key=API_KEY_из_профиля

Структура API запроса для получения информации по ip адресу в json-формате:

http://htmlweb.ru/geo/api.php?json&ip=IP_АДРЕС&api_key=API_KEY_из_профиля

Для получения информации о текущем ip укажите пустое значение ip:

http://htmlweb.ru/geo/api.php?html&ip&api_key=API_KEY_из_профиля

Для получения краткой информации укажите параметр short:

http://htmlweb.ru/geo/api.php?html&short&ip&api_key=API_KEY_из_профиля

Для получения дополнительной информации из регистрационной базы данных(Whois) укажите параметр whois:

http://htmlweb.ru/geo/api.php?html&whois&ip&api_key=API_KEY_из_профиля

Пример для получения информации в html-формате с Вашим API_KEY:

http://htmlweb.ru/geo/api.php?html&ip&api_key=НЕДОСТУПНО_БЕЗ_РЕГИСТРАЦИИ

Ответ для html:

Город: Ростов-на-Дону (rostov-na-donu) Wiki
Регион: Ростовская область Wiki, Областной центр: Ростов-на-Дону
Округ: Южный федеральный округ
Страна: Россия RU Wiki(Российская Федерация, Russia, ISO:643) , Столица Москва 1
Часть света: Европа
Код страны(2): RU
Код страны(3): RUS
Широта: 47.233189
Долгота: 39.715000
Телефонный код страны: +7
Телефонный код города: 863
Автомобильный код региона: 61,161
Временная зона(Time Zone,UTC,GMT): +4
Осталось 50 запросов до 21:05:58 09.10.2013

Краткий (short) html-ответ:

Город: Ростов-на-Дону
Регион: Ростовская область
Округ: Южный федеральный округ
Страна: Россия

Ответ для json:

{   'ip':'93.178.64.171',
    'country_id':'RU',
    'country':'Россия',
    'region_id':49,
    'region':'Ростовская область',
    'region_iso':'',
    'okrug':'Южный федеральный округ',
    'rajon':'',
    'rajon_id':0,
    'city_id':1711,
    'city':'Ростов-на-Дону',
    'city_english':'rostov-na-donu',
    'city_telcod':863,
    'latitude':'47.233189',
    'longitude':'39.715000',
    'autocod':'61,161',
    'capital2_id':1711,
    'capital2':'Ростов-на-Дону',
    'fullname':'Российская Федерация',
    'english':'Russia','country_code3':'RUS',
    'iso':643,'country_telcod':7,
    'location':'Европа','capital_id':1,
    'capital':'Москва','time_zone':4,
    'charset':'','api':'\/geo\/api.php',
    'upd':'1373297221',
    'limit':50
}

Краткий (short) json-ответ:

{   'country_id':'RU',
    'country':'Россия',
    'region_id':49,
    'region':'Ростовская область',
    'okrug':'Южный федеральный округ',
    'rajon_id':0,
    'rajon':'',
    'city_id':1711,
    'city':'Ростов-на-Дону',
    'limit':50
}

ip адреса сотовых (мобильных) операторов связи

Данный API запрос также возвращает оператора по ip, если IP адрес принадлежит мобильному оператору сотовой связи: Например, для запроса:

https://htmlweb.ru/geo/api.php?ip=212.58.160.0&json

Возвращается json-ответ:

{"ip":"212.58.160.0",
 "country":{"name":"Украина","english":"Ukraine","id":"UA","country_code3":"UKR","iso":804,"telcod":380,"location":"Европа","capital":4910,"mcc":255,"lang":"украинский","langcod":"uk"},
 "region":{"id":190,"name":"Киевская область","okrug":"Центральная Украина","capital":4910,"english":"Kievskaja oblast","country":"UA"},
 "okrug":"Центральная Украина","rajon":{"id":58900,"name":"місто Київ","area":190,"country":"UA","capital":4910,"english":"Msto kiv"},
 "city_id":4910,"city":"Киев","city_english":"Kiev","city_telcod":44,"latitude":50.45,"longitude":30.5233,"english":"Ukraine","iso":804,"level":1,"country_telcod":380,"location":"Европа",
 "capital":{"id":4910,"name":"Киев","area":190,"telcod":44,"latitude":50.45,"longitude":30.5233,"time_zone":3,"english":"Kiev","rajon":58900,"country":"UA","sound":"K100","level":1,"vid":1,"post":"01054"},
 "time_zone":3,
 "oper":{"id":6719,"name":"life:)","country":"UA","mnc":6},
 "upd":1528896187,
 "post":"01054",
 "ImgFlag":"<img src='https:\/\/htmlweb.ru\/geo\/flags\/ua.png'>",
 "vid_id":1,
 "vid":"город",
 "limit":99844
}

Определение прокси-сервера на IP адресе

Если на запрашиваемом IP адресе был ранее обнаружен Proxy-сервер, то дополнительно будет возвращена информация:

"proxy": {
    "type": ["HTTP"],
    "ip": "167.99.62.12:8080"
},
"message": "На данном IP адресе обнаружен прокси-сервер!",

Поле type - список протоколов, по которым работает данный прокси-сервер.

Сканирование IP адреса на наличие на нем прокси-сервера

Данный сервис позволяет проверить порты хоста на признаки прокси.

Для проверки IP адреса на наличие на нем прокси-сервера используйте отдельный API вызов:

https://htmlweb.ru/json/proxy/scan_ip

Входные параметры:

  • ip = IP или IP:ПОРТ или ПРОТОКОЛ://IP:ПОРТ, протокол один из: HTTP|HTTPS|SOCKS4|SOCKS5
  • type = тип, если не задан у прокси
  • debug - выводить всю служебную информацию
Пример запроса: https://htmlweb.ru/json/proxy/scan_ip?ip=167.99.62.12
{
"status": 200,
"proxy": [
{
    "u": "http://167.99.62.12:8080",
    "speed": 147,
    "ip": "167.99.62.12, 185.12.92.137, 1.1 ssl9-10 (squid/3.5.23)",
    "type": 0
}
],
"limit": 4900,
"balans": 59330.46
}

Если на запрашиваемом IP прокси сервера не обнаружены ответ будет:

{"status":404,"limit":4897,"balans":59330.46}

Определение робота поисковых систем на IP адресе

Если на запрашиваемом IP адресе был ранее обнаружен робот, то дополнительно будет возвращена информация:

"robot":"Yandex"

Определение IP адресов с которых производились атаки типа BruteForce

Если с запрашиваемого IP адреса была попытка атаки перебора уязвимостей BruteForce, то дополнительно будет возвращена информация:

"hacker":{"before":1644562429,"url":"\/wp-login.php","msg":"Hacker"}

Общие параметры для всех API сервисов
Другие сервисы, доступные по API
Стоимость API запроса и тарифы

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

Сервисы, на которых можно ещё получить информацию об ip адресе
  • freegeoip.net/{format:csv, xml or json}/{ip_or_hostname}[?calback=ИМЯ_JS_ФУНКЦИИ] - плохая поддержка Российских IP

.