pdns.php¶
Модуль управления DNS-записями и зонами: добавление, удаление и просмотр доменов, поддоменов и зон, а также получение информации о callback-URL.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
add_dns | добавление DNS-записи | Добавляет новую DNS-запись в указанную зону. |
add_domain | добавление домена | Добавляет новый домен в систему DNS для указанного клиента. |
delete_dns | удаление DNS-записи | Удаляет указанную DNS-запись. |
delete_domain | удаление домена | Удаляет домен и все связанные с ним записи. |
get_cb_url | получение callback URL | Возвращает URL для callback-уведомлений. |
list_domains | получение списка доменов | Возвращает список доменов клиента. |
list_zones | получение списка зон | Возвращает список DNS-зон. |
view_zone | просмотр зоны | Возвращает детали указанной DNS-зоны. |
pdns/add_dns¶
Добавляет новую DNS-запись в указанную зону.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add_dns |
| token | ✅ | string | Токен авторизации |
| params[zone] | ✅ | string | Имя зоны (домена), в которую добавляется запись |
| params[name] | ✅ | string | Имя хоста для записи (например, www или @) |
| params[type] | ✅ | string | Тип записи (A, AAAA, CNAME, MX, TXT, SRV, SOA, DKIM, SPF, NS) |
| params[content] | ✅ | array<mixed> | Содержимое записи. Для типов A, AAAA, NS, MX — массив строк. Для остальных — строка. |
| params[ttl] | ❌ | int | Время жизни записи в секундах (по умолчанию 3600) |
| params[priority] | ❌ | int | Приоритет для записей MX и SRV |
| params[weight] | ❌ | int | Вес для записей SRV |
| params[port] | ❌ | int | Порт для записей SRV |
| params[proto] | ❌ | string | Протокол для записей SRV (tcp, udp) |
| params[target] | ❌ | string | Целевой домен для записей SRV |
| params[mname] | ❌ | string | Основной сервер для записей SOA |
| params[rname] | ❌ | string | Email администратора для записей SOA |
| params[serial] | ❌ | int | Серийный номер для записей SOA |
| params[refresh] | ❌ | int | Интервал обновления для записей SOA |
| params[retry] | ❌ | int | Интервал повторной попытки для записей SOA |
| params[expire] | ❌ | int | Срок истечения для записей SOA |
| params[minimum] | ❌ | int | Минимальное время жизни для записей SOA |
| params[increase_soa_serial] | ❌ | int | Увеличить серийный номер SOA (1 или 0) |
| params[changetype] | ❌ | string | Тип изменения: create или update |
| params[pdns_loc] | ❌ | string | Локация PowerDNS сервера |
| params[update] | ❌ | string | Значение для обновления записи MX |
Пример запроса
Пример успешного ответа
Примеры ошибок
{
"code": -1,
"message": "invalid argument zone 'example.com'",
"description": "Неверный формат зоны или зона не разрешена"
}
pdns/add_domain¶
Добавляет новый домен в систему DNS для указанного клиента.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add_domain |
| token | ✅ | string | Токен авторизации для проверки прав доступа |
| params[name] | ✅ | string | Имя домена (FQDN) для добавления |
| params[pdns_loc] | ❌ | string | Локация сервера PDNS (pdns_loc) |
| params[server_id] | ❌ | int | ID сервера, на котором будет размещен домен |
| params[nameservers] | ❌ | array<string> | Список имен серверов имен (NS) для домена |
| params[dns][mname] | ❌ | string | Имя сервера, создавшего зону (SOA MNAME) |
| params[dns][rname] | ❌ | string | Email администратора зоны (SOA RNAME) |
| params[dns][serial] | ❌ | int | Начальный серийный номер зоны (SOA SERIAL) |
| params[dns][refresh] | ❌ | int | Интервал обновления зоны в секундах (SOA REFRESH) |
| params[dns][retry] | ❌ | int | Интервал повторной попытки при ошибке (SOA RETRY) |
| params[dns][expire] | ❌ | int | Срок истечения зоны в секундах (SOA EXPIRE) |
| params[dns][minimum] | ❌ | int | Минимальный TTL для отрицательных ответов (SOA MINIMUM) |
| params[dns][ttl] | ❌ | int | Значение TTL для записей по умолчанию |
Пример запроса
curl -s "https://invapi.hostkey.ru/pdns" -X POST \
--data "action=add_domain" \
--data "token=HOSTKEY_TOKEN" \
--data "params[name]=example.com" \
--data "params[nameservers]=ns1.example.com" \
--data "params[nameservers]=ns2.example.com" \
--data "params[dns][mname]=ns1.example.com" \
--data "params[dns][rname]=admin.example.com" \
--data "params[dns][serial]=2023102701" \
--data "params[dns][refresh]=7200" \
--data "params[dns][retry]=3600" \
--data "params[dns][expire]=1209600" \
--data "params[dns][minimum]=3600" \
--data "params[dns][ttl]=3600"
Пример успешного ответа
pdns/delete_dns¶
Удаляет указанную DNS-запись.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_dns |
| token | ✅ | string | Токен авторизации |
| params[zone] | ✅ | string | Домен зоны (FQDN) |
| params[name] | ❌ | string | Имя записи (относительное или @) |
| params[type] | ✅ | string | Тип записи (A, AA4, CNAME, MX, TXT и т.д.) |
| params[priority] | ❌ | int | Приоритет (требуется только для типа MX) |
| params[records][0][content] | ❌ | string | Контент записи (требуется только для типа MX) |
| params[pdns_loc] | ❌ | string | Локация PowerDNS сервера |
Пример запроса
Пример успешного ответа
Примеры ошибок
{
"code": -1,
"message": "invalid argument zone 'example.com'",
"description": "Некорректный формат зоны"
}
pdns/delete_domain¶
Удаляет домен и все связанные с ним записи.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_domain |
| token | ✅ | string | Токен авторизации |
| params[id] | ✅ | int | ID домена для удаления |
| params[zone] | ✅ | string | Имя зоны домена (FQDN) |
| params[customer_id] | ❌ | int | ID клиента (обязателен для сотрудников, опционален для клиентов) |
| params[pdns_loc] | ❌ | string | Локация PDNS сервера |
Пример запроса
Пример успешного ответа
Примеры ошибок
{
"code": -1,
"message": "invalid argument DNS zone id",
"description": "Неверный ID домена (меньше 1)"
}
pdns/get_cb_url¶
Возвращает URL для callback-уведомлений.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_cb_url |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
pdns/list_domains¶
Возвращает список доменов клиента.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list_domains |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
pdns/list_zones¶
Возвращает список DNS-зон.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list_zones |
| token | ✅ | string | Токен авторизации |
| params[customer_id] | ❌ | int | Фильтр по ID клиента (опционально, используется в контроллере для других действий, но передается в params) |
| params[pdns_loc] | ❌ | string | Локация PDNS сервера |
Пример запроса
Пример успешного ответа
Примеры ошибок
pdns/view_zone¶
Возвращает детали указанной DNS-зоны.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: view_zone |
| token | ✅ | string | Токен авторизации |
| params[zone] | ✅ | string | Имя DNS-зоны (доменное имя) |
| params[pdns_loc] | ❌ | string | Локация PDNS сервера (опционально) |
Пример запроса