Получение информации об IP-адресах (batch-режим)

·

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

POST-метод:
# curl -s 'https://ip2api.ru/api/v1/batch?token=ВашТокен' -X POST -H 'Content-type: application/json' --data '{"1.1.1.1": "", "1.1.1.2": ""}'

В качестве ответа вернется содержимое в формате JSON (набор полей может отличаться в зависимости от тарифного плана):

Copied!
{ "1.1.1.1": { "status": "success", "cc": "AU", "country": "Australia", "region": "Queensland", "city": "South Brisbane", "asn": 13335, "timezone": "Australia/Brisbane", "lat": -27.4766, "lon": 153.0166, "mobile": false, "hosting": true, "proxy": false, "isp": "Cloudflare, Inc", "tor": false, "crawler": false, "company": "APNIC and Cloudflare DNS Resolver project", "asname": "Cloudflare, Inc.", "asdomain": "cloudflare.com", "astype": "Hosting", "asroute4": [ "1.0.0.0/24", "1.1.1.0/24", ... ], "asroute6": [ "2400:cb00:4::/48", "2400:cb00:11::/48", "2400:cb00:12::/48", ... ], "asipv4size": 1048320, "asipv6size": 560940371375368300000000000000, "network_cidr": "1.1.1.0/24", "network_range": [ "1.1.1.0", "1.1.1.255" ], "vpn_provider": null, "hosting_provider": null, "hostname": "one.one.one.one" }, "1.1.1.2": { "city": "South Brisbane", "region": "Queensland", "hosting": true, "lat": -27.4766, "lon": 153.0166, "mobile": false, "proxy": false, "isp": "Cloudflare, Inc", "status": "success", "timezone": "Australia/Brisbane", "cc": "AU", "asn": 13335, "crawler": false, "tor": false, "country": "Australia", "region": "Queensland", "company": "APNIC and Cloudflare DNS Resolver project", "asname": "Cloudflare, Inc.", "asdomain": "cloudflare.com", "astype": "Hosting", "asroute4": [ "1.0.0.0/24", "1.1.1.0/24", ... ], "asroute6": [ "2400:cb00:4::/48", "2400:cb00:11::/48", "2400:cb00:12::/48", ... ], "asipv4size": 1048320, "asipv6size": 560940371375368300000000000000, "network_cidr": "1.1.1.0/24", "network_range": [ "1.1.1.0", "1.1.1.255" ], "vpn_provider": null, "hosting_provider": null, "hostname": "one.one.one.one" }, "requests_available": 91 }

Описание всех полей доступно в соответствующем разделе.

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

Пример:

# curl -s 'https://ip2api.ru/api/v1/batch?token=ВашТокен' -X POST -H 'Content-type: application/json' --data '{"1.1.1.1": "cc,country,network_cidr", "1.1.1.2": ""}'

Ответ:

Copied!
{ "192.168.0.1": { "status": "error", "description": "Private IP" }, "1.1.1.1": { "status": "success", "cc": "AU", "country": "Australia", "network_cidr": "1.1.1.0/24" }, "1.1.1.2": { "status": "success", "city": "South Brisbane", "region": "Queensland", "hosting": true, "lat": -27.4766, "lon": 153.0166, "mobile": false, "proxy": false, ... "asroute4": [ "1.0.0.0/24", "1.1.1.0/24", ... ], ... }, "requests_available": 93 }

Поле “requests_available” возвращаются при каждом успешном запросе. Поле “status” возвращается для каждого IP-адреса. Результат обработки каждого IP-адреса не влияет на код ответа сервера.

В случае успешной обработки запроса сервер вернет ответ с кодом 200. В случае ошибки обработки запроса сервер вернет ответ с кодом 209 и значением “error” поля “status”. Описание ошибки будет доступно в виде значения для поля “description”.

Если ни одного поля не было задано, то в качестве ответа вернется содержимое в формате JSON, которое будет содержать все доступные поля (набор полей может отличаться в зависимости от тарифного плана).