ASN API · Документация

ASN API

Авторизация

Доступ разрешён, если выполняется одно из условий:

ПараметрОписание
keyAPI-ключ (не требуется при авторизации по IP).

Параметры запроса

Обязательные

ПараметрОписание
fieldПоле поиска.
valueЗначение поиска. Несколько значений можно перечислить через запятую (до 64).

Допустимые значения field

network
country
country_code
continent
continent_code
asn
as_name
as_domain
custom

Необязательные параметры

ПараметрЗначениеОписание
ipv61 / true / yesВключить IPv6.
res1 / 0Принимается, но игнорируется (в базе нет признака residential). См. «Дополнительная информация».

Особенности поиска

ASN

AS15169
15169

LIKE-поиск

Для полей as_name и as_domain используется поиск по подстроке (без учёта регистра).

Для остальных полей используется точное совпадение.

Несколько значений

field=country
value=Russia,Belarus,Ukraine

Поиск выполняется по логическому OR.

network

value = IP-адрес или CIDR. Возвращаются CIDR-сети диапазона, содержащего указанный адрес.

Custom-запросы

field=custom
valueОписание
silentrussianAS с российским брендом в имени, сети которых расположены вне России (приближение: по токенам названий, а не по WHOIS-домену; список токенов в config.json).
silentbelarusAS с белорусским брендом вне Беларуси + все белорусские сети (приближение, см. «Дополнительная информация»).
mitigationИзвестные ASN CDN и DDoS-защиты (Akamai, Cloudflare, Fastly, AWS, Azure, GCore, DDoS-Guard, OVH, Imperva, Edgio…).
googleASN Google.

Списки групп редактируются в /opt/asnapi/config.json (перезапуск t196-asnapi).

Формат ответа

Ответ имеет тип text/plain; charset=utf-8.

1.1.1.0/24
8.8.8.0/24
104.16.0.0/13

Keenetic PBR

Если User-Agent начинается с keen-pbr и найдено более 65536 сетей, список автоматически сокращается до 65536 записей.

Удаление выполняется в следующем порядке:

  1. IPv4 без маски.
  2. IPv6 без маски.
  3. IPv4 от /32 к /0.
  4. IPv6 от /128 к /0.

Для остальных клиентов ограничение отсутствует.

HTTP-коды

КодОписание
200Успешный запрос.
304Данные не изменились.
400Некорректные параметры.
403Доступ запрещён.
404Совпадений не найдено.
500Ошибка базы данных / база ещё не собрана.

Кэширование

API поддерживает: ETag, Last-Modified, Cache-Control (max-age=1800) и отвечает 304 при повторных запросах.

База обновляется ежедневно в 09:00 по времени сервера (Europe/Moscow), таймер t196-asnapi-db.timer.

Дополнительная информация

Примеры

curl 'https://asn.rektuzik.xyz/?field=as_name&value=akamai&key=KEY'
curl -A keen-pbr 'https://asn.rektuzik.xyz/?field=country&value=russia&key=KEY'
curl 'https://asn.rektuzik.xyz/?field=asn&value=AS15169,AS13335&key=KEY&ipv6=1'
curl 'https://asn.rektuzik.xyz/?field=custom&value=mitigation&key=KEY'
curl 'https://asn.rektuzik.xyz/doc.php'

Пример для /etc/keen-pbr/config.json:

"asn_russia": {
  "ttl_ms": 7200000,
  "url": "https://asn.rektuzik.xyz/?field=country&value=russia&key=KEY"
}