---
canonical: https://docs.ideco.ru/v22/ru/ngfw/api/reports-dns-api
---



# DNS-запросы

::: page-constructor
blocks:
  - type: content-layout-block
    textContent:
      buttons:
        - text: Классический VCE
          theme: action
          width: 'auto'
        - text: Высокопроизводительный VCE
          theme: outlined
          url: https://docs.ideco.ru/api/vpp-v22/ru/ngfw/stat-api/dns-journal/
          width: 'auto'
        - text: Документация
          theme: outlined
          url: https://docs.ideco.ru/v22/ru/ngfw/settings/reports/requests-log
          width: 'auto'
    resetPaddings: false
    textWidth: l
    size: m
    centered: false
:::

{% cut "Получение журнала DNS-запросов" %}{#poluchenie-zhurnala-dns-zaprosy}

#|
|| GET | `/reports/report/dns/journal?<GET-параметры, разделенные знаком &>` ||
|#

- `limit` - ограничение на количество строк. Минимальное значение - `1`;
- `offset` - количество строк, которые необходимо пропустить, прежде чем начать выводить записи. Минимальное значение - `0`;
- `format_type` - формат данных, поддерживает `CSV` и `JSON`, по умолчанию `JSON`;
- `sort` - список параметров сортировки в прямом порядке. По умолчанию сортируется по убыванию `date_time`:
  - `field` - столбец, по которому производится сортировка;
  - `direction` - направление сортировки: `asc` - по возрастанию, `desc` - по убыванию.
- `with_threat_categories` - фильтрация по наличию категорий угроз:
  - `true` - возвращать только строки, где поле `categories` непустое (домен принадлежит хотя бы одной категории угроз);
  - `false` или отсутствие параметра - возвращать все строки без дополнительной фильтрации.

#### Ответ на успешный запрос

```json5
[
  {
      "id": "string",
      "date_time": integer,
      "action": "string",
      "src_ip": "string",
      "protocol": "string",
      "qname": "string",
      "qtype": "string",
      "qclass": "string",
      "opcode": "string",
      "rcode": "string",
      "id_wire": integer,
      "flags": ["string"],
      "vanswer": ["string"],
      "vauthority": ["string"],
      "vadditional": ["string"],
      "src_user_login": "string",
      "src_user_name": "string",
      "src_group": "string",
      "categories": ["string"],
      "cluster_id": "string",
      "cluster_name": "string",
      "vce_id": "string",
      "vce_name": "string"
  },
  ...
]
```

#|
|| **Поле** | **Тип** | **Описание** ||
|| `id` | string | Идентификатор записи ||
|| `date_time` | integer | Дата и время события в формате `YYYYMMDDhhmmss` ||
|| `action` | string | Результат обработки DNS-запроса. Возможные значения:
- `query` - перехват запроса к серверу
- `reply`  успешно
- `cache` - ответ сформирован из кэша
- `fail` - ошибка обработки запроса ||
|| `src_ip` | string | IP-адрес источника запроса ||
|| `protocol` | string | Используемый протокол ||
|| `qname` | string | Имя запрашиваемого домена ||
|| `qtype` | string | Тип DNS-запроса (например, `A`, `AAAA`, `MX` и другие) ||
|| `qclass` | string | Класс DNS-запроса (как правило, `IN`) ||
|| `opcode` | string | Код операции DNS ||
|| `rcode` | string | Код ответа DNS ||
|| `id_wire` | integer | Идентификатор DNS-пакета ||
|| `flags` | array | Флаги DNS-пакета (например, `RD`, `RA`, `AA`, `TC`) ||
|| `vanswer` | array | Записи раздела Answer в ответе DNS ||
|| `vauthority` | array | Записи раздела Authority ||
|| `vadditional` | array | Записи раздела Additional ||
|| `src_user_login` | string | Логин пользователя источника ||
|| `src_user_name` | string | Имя пользователя источника ||
|| `src_group` | string | Группа пользователя источника ||
|| `categories` | array | Список названий категорий запрашиваемого домена ||
|| `cluster_id` | string | Идентификатор кластера (если настроен на NGFW Novum) ||
|| `cluster_name` | string | Название кластера ||
|| `vce_id` | string | Идентификатор **VCE** ||
|| `vce_name` | string | Название **VCE** ||
|#


{% endcut %}

{% cut "Получение уникальных значений полей" %}{#poluchenie-unikalnyh-znacheny}

#|
|| GET | `/reports/report/dns/journal/unique/<field_name>?<GET-параметры, разделенные знаком &>` ||
|#

Возможные значения `field_name`:

- `action` - действие, зафиксированное в журнале;
- `protocol` - протокол;
- `qtype` - тип DNS-запроса;
- `qclass` - класс DNS-запроса;
- `opcode` - код операции DNS;
- `rcode` - код ответа DNS;
- `flags` - флаги DNS-пакета;
- `src_user_login` - логин пользователя источника;
- `src_user_name` - имя пользователя источника;
- `src_group` - группа пользователя источника;
- `categories` - категории запрашиваемого домена;
- `vce_id` - идентификатор VCE;
- `vce_name` - название VCE;
- `cluster_id` - идентификатор кластера;
- `cluster_name` - название кластера.

#### Ответ на успешный запрос

```json5
{
  "field_name": ["string"]
}
```

#|
|| **Параметр** | **Тип** | **Описание** ||
|| `field_name` | array | Массив уникальных значений запрошенного поля ||
|#

{% endcut %}

{% cut "Запрос количества записей" %}{#zapros-kolichestva-zapisey-dns}

#|
|| GET | `/reports/report/dns/journal/count?<GET-параметры, разделенные знаком &>` ||
|#

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

- `with_threat_categories` - фильтрация по наличию категорий угроз:
  - `true` - возвращать только строки, где поле `categories` непустое (домен принадлежит хотя бы одной категории угроз);
  - `false` или отсутствие параметра - возвращать все строки без дополнительной фильтрации.

#### Ответ на успешный запрос

```json5
{
  "count": integer
}
```

#|
|| **Параметр** | **Тип** | **Описание** ||
|| `count` | integer | Количество записей, удовлетворяющих заданным фильтрам ||
|#

{% endcut %}
