Перейти к содержанию

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

Пример запроса

curl -s "https://invapi.hostkey.ru/pdns" -X POST \
--data "action=add_dns" \
--data "token=HOSTKEY_TOKEN" \
--data "params[zone]=example.com" \
--data "params[name]=www" \
--data "params[type]=A" \
--data "params[content][]=192.168.1.1" \
--data "params[content][]=192.168.1.2"
Пример успешного ответа
{
  "result": "OK",
  "module": "pdns",
  "action": "add_dns",
  "data": {
    "rrsets": [
      {
        "name": "www.example.com.",
        "type": "A",
        "ttl": 3600,
        "changetype": "REPLACE",
        "records": [
          {
            "content": "192.168.1.1",
            "disabled": false
          }
        ]
      }
    ]
  }
}
Примеры ошибок
{
  "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"
Пример успешного ответа
{
  "result": "OK",
  "module": "pdns",
  "action": "add_domain",
  "data": {
    "id": 1024
  }
}
Примеры ошибок
{
  "code": -1,
  "message": "invalid argument DNS zone name"
}

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 сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/pdns" -X POST \
--data "action=delete_dns" \
--data "token=HOSTKEY_TOKEN" \
--data "params[zone]=example.com" \
--data "params[name]=www" \
--data "params[type]=A"
Пример успешного ответа
{
  "result": "OK",
  "module": "pdns",
  "action": "delete_dns",
  "data": {
    "status": "success",
    "message": "Record deleted"
  }
}
Примеры ошибок
{
  "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 сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/pdns" -X POST \
--data "action=delete_domain" \
--data "token=HOSTKEY_TOKEN" \
--data "params[id]=VALUE" \
--data "params[zone]=VALUE"
Пример успешного ответа
{
  "result": "OK",
  "module": "pdns",
  "action": "delete_domain",
  "data": {
    "id": 67890
  }
}
Примеры ошибок
{
  "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 Токен авторизации

Пример запроса

curl -s "https://invapi.hostkey.ru/pdns" -X POST \
--data "action=get_cb_url" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
  "result": "OK",
  "module": "pdns",
  "action": "get_cb_url",
  "data": {
    "cb_url": "https://api.example.com/callback/pdns"
  }
}
Примеры ошибок
{
  "code": -1,
  "message": "Action required"
}

pdns/list_domains

Возвращает список доменов клиента.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: list_domains
token string Токен авторизации

Пример запроса

curl -s "https://invapi.hostkey.ru/pdns" -X POST \
--data "action=list_domains" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
  "result": "OK",
  "module": "pdns",
  "action": "list_domains",
  "data": [
    {
      "id": 1,
      "name": "example.com"
    },
    {
      "id": 2,
      "name": "test.org"
    }
  ]
}
Примеры ошибок
{
  "code": -1,
  "message": "Action required"
}

pdns/list_zones

Возвращает список DNS-зон.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: list_zones
token string Токен авторизации
params[customer_id] int Фильтр по ID клиента (опционально, используется в контроллере для других действий, но передается в params)
params[pdns_loc] string Локация PDNS сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/pdns" -X POST \
--data "action=list_zones" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
  "result": "OK",
  "module": "pdns",
  "action": "list_zones",
  "data": [
    {
      "id": 101,
      "name": "example.com",
      "type": "MASTER",
      "notified_serial": 2024011501
    }
  ]
}
Примеры ошибок
{
  "code": -1,
  "message": "Action required",
  "description": "Отсутствует параметр action"
}

pdns/view_zone

Возвращает детали указанной DNS-зоны.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: view_zone
token string Токен авторизации
params[zone] string Имя DNS-зоны (доменное имя)
params[pdns_loc] string Локация PDNS сервера (опционально)

Пример запроса

curl -s "https://invapi.hostkey.ru/pdns" -X POST \
--data "action=view_zone" \
--data "token=HOSTKEY_TOKEN" \
--data "params[zone]=example.com"
Пример успешного ответа
{
  "result": "OK",
  "module": "pdns",
  "action": "view_zone",
  "data": {
    "id": 101,
    "name": "example.com",
    "type": "MASTER",
    "records": [
      {
        "id": 1,
        "name": "@",
        "type": "A",
        "content": "192.168.1.1",
        "ttl": 3600
      },
      {
        "id": 2,
        "name": "www",
        "type": "CNAME",
        "content": "@",
        "ttl": 3600
      }
    ]
  }
}
Примеры ошибок
{
  "code": -1,
  "message": "invalid argument zone 'example.com'",
  "description": "Некорректный аргумент zone (невалидный FQDN или не разрешен)"
}

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×