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

net.php

Модуль управления сетевой инфраструктурой: добавление и удаление IP-адресов, блокировка трафика, управление состоянием сетевых портов, получение статистики и отображение графиков Cacti.

Методы API

Метод Действие Описание
add_ipv4 добавление IPv4 адресов Добавляет указанное количество IPv4 адресов к серверу на конкретный порт и VLAN. Поддерживает выбор конкретных IP или автоматический подбор свободных.
block_ip блокировка IP Блокирует указанный IP-адрес на сервере через BIRD или blackhole. Требует причину блокировки.
get_status получение статуса порта Возвращает текущий статус сетевого интерфейса сервера (up/down, скорость, дуплекс, MAC).
port_off отключение порта Отключает сетевой интерфейс сервера. Может добавлять тег блокировки с причиной.
port_on включение порта Включает сетевой интерфейс сервера. Удаляет тег блокировки, если он не был установлен администратором.
remove_ipv4 удаление IPv4 адресов Удаляет указанный IPv4 адрес или все адреса с сервера. Очищает PTR записи в DNS.
show_cacti получение графиков Cacti Возвращает данные или ссылку на график трафика для указанного порта сервера из системы мониторинга Cacti.
show_ipv4_free поиск свободных IPv4 Возвращает список доступных свободных IPv4 адресов для указанного сервера, порта и VLAN.
unblock_ip разблокировка IP Разблокирует ранее заблокированный IP-адрес на сервере. Требует прав администратора или совпадения с причиной блокировки.

net/add_ipv4

Добавляет указанное количество IPv4 адресов к серверу на конкретный порт и VLAN. Поддерживает выбор конкретных IP или автоматический подбор свободных.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: add_ipv4
token string Токен авторизации
id int ID сервера
amount int Количество IP адресов для добавления
port string Название сетевого интерфейса (например, eth0)
vlan int ID VLAN (опционально, определяется автоматически для клиентов)
ip string Конкретный IP адрес для добавления (если не указан, подбирается свободный)
ips array Массив конкретных IP адресов для добавления
tag string Тег сети (например, ipmi, ovirt, bm)
fresh_period int Период свежести IP (время в секундах)
allow_tech_networks int Разрешить использование технических сетей (для администраторов)

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

curl -s "https://invapi.hostkey.ru/net" -X POST \
--data "action=add_ipv4" \
--data "token=HOSTKEY_TOKEN" \
--data "id=12345" \
--data "amount=2" \
--data "port=eth0" \
--data "vlan=100" \
--data "ips[]=192.168.1.10" \
--data "ips[]=192.168.1.11"
Пример успешного ответа
{
  "result": "OK",
  "action": "add_ipv4",
  "id": 12345,
  "ips": [
    {
      "IP": "192.168.1.10",
      "vlan": 100
    },
    {
      "IP": "192.168.1.11",
      "vlan": 100
    }
  ],
  "keys": [
    "key_abc123",
    "key_def456"
  ]
}
Примеры ошибок
{
  "code": -1,
  "message": "net/add_ipv4: invalid request"
}

net/block_ip

Блокирует указанный IP-адрес на сервере через BIRD или blackhole. Требует причину блокировки.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: block_ip
token string Токен авторизации
id int ID сервера
ip string IP адрес для блокировки
description string Причина блокировки (описание)
four_hours int Установить временную блокировку на 4 часа (1 для включения)

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

curl -s "https://invapi.hostkey.ru/net" -X POST \
--data "action=block_ip" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "ip=VALUE" \
--data "description=VALUE"
Пример успешного ответа
{
  "result": "OK",
  "action": "block_ip",
  "callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
  "code": -1,
  "message": "no IP 192.168.1.50 found on server 12345"
}

net/get_status

Возвращает текущий статус сетевого интерфейса сервера (up/down, скорость, дуплекс, MAC).

HTTP-метод: GET|POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: get_status
token string Токен авторизации
id int ID сервера
port string Название интерфейса (например, eth0). Если не указан, берется основной интерфейс.

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

curl -s "https://invapi.hostkey.ru/net" -X GET \
--data "action=get_status" \
--data "token=HOSTKEY_TOKEN" \
--data "id=12345" \
--data "port=eth0"
Пример успешного ответа
{
  "result": "OK",
  "action": "get_status",
  "data": {
    "port": "eth0",
    "status": "up",
    "speed": "10000",
    "duplex": "full",
    "mac": "00:11:22:33:44:55"
  }
}
Примеры ошибок
{
  "code": -1,
  "message": "net/get_status: invalid request for server 12345 with port eth0",
  "description": "Ошибка валидации параметров или отсутствие прав доступа"
}

net/port_off

Отключает сетевой интерфейс сервера. Может добавлять тег блокировки с причиной.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: port_off
token string Токен авторизации
id int ID сервера
port string Название интерфейса (например, eth0). Если не указан, выбирается основной интерфейс.
reason string Причина отключения (добавляется в тег block)

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

curl -s "https://invapi.hostkey.ru/net" -X POST \
--data "action=port_off" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "port=eth0" \
--data "reason=Test reason"
Пример успешного ответа
{
  "result": "OK",
  "action": "port_off",
  "callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
  "code": -1,
  "message": "net/port_off: admin ban could not be lifted this way, please contact support or abuse team."
}

net/port_on

Включает сетевой интерфейс сервера. Удаляет тег блокировки, если он не был установлен администратором.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: port_on
token string Токен авторизации
id int ID сервера
port string Название интерфейса (например, eth0). Если не указан, используется основной интерфейс или первый eth-интерфейс.

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

curl -s "https://invapi.hostkey.ru/net" -X POST \
--data "action=port_on" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
  "result": "OK",
  "action": "port_on",
  "callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
  "code": -1,
  "message": "admin ban could not be lifted this way, please contact support or abuse team."
}

net/remove_ipv4

Удаляет указанный IPv4 адрес или все адреса с сервера. Очищает PTR записи в DNS.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: remove_ipv4
token string Токен авторизации
id int ID сервера
ip string IP адрес для удаления
remove_all int Удалить все IP адреса с сервера (1 - да, 0 - нет)

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

curl -s "https://invapi.hostkey.ru/net" -X POST \
--data "action=remove_ipv4" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "ip=VALUE"
Пример успешного ответа
{
  "result": "OK",
  "action": "remove_ipv4",
  "id": 12345,
  "ips": [
    "192.168.1.10"
  ],
  "keys": [
    "key_xyz789"
  ]
}
Примеры ошибок
{
  "code": -1,
  "message": "No IP specificed"
}

net/show_cacti

Возвращает данные или ссылку на график трафика для указанного порта сервера из системы мониторинга Cacti.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: show_cacti
token string Токен авторизации
id int ID сервера
port string Название интерфейса (например, eth0)
graph string Тип графика (по умолчанию 1)

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

curl -s "https://invapi.hostkey.ru/net" -X POST \
--data "action=show_cacti" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "port=eth0" \
--data "graph=1"
Пример успешного ответа
{
  "result": "OK",
  "action": "show_cacti",
  "data": {
    "graph_url": "https://cacti.example.com/graph.php?id=12345",
    "port": "eth0",
    "server_id": 12345
  }
}
Примеры ошибок
{
  "code": -1,
  "message": "invalid request"
}

net/show_ipv4_free

Возвращает список доступных свободных IPv4 адресов для указанного сервера, порта и VLAN.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: show_ipv4_free
token string Токен авторизации
id int ID сервера
port string Название интерфейса (например, eth0)
vlan int ID VLAN (опционально, используется для администраторов)
tag string Тег сети (например, bm, ipmi, ovirt)
fresh_period int Период свежести IP (в секундах, -1 если не задано)
allow_tech_networks int Разрешить технические сети (0 или 1)

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

curl -s "https://invapi.hostkey.ru/net" -X POST \
--data "action=show_ipv4_free" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "port=VALUE"
Пример успешного ответа
{
  "result": "OK",
  "action": "show_ipv4_free",
  "id": 12345,
  "ips": [
    {
      "IP": "192.168.1.20",
      "vlan": 100
    },
    {
      "IP": "192.168.1.21",
      "vlan": 100
    }
  ],
  "subnets": [
    "192.168.1.0/24"
  ],
  "res": "success",
  "total_ips": 2,
  "fresh": -1
}
Примеры ошибок
{
  "code": -1,
  "message": "can't find approppriate free IP (vlan: 100 tag: bm amount: 0 at DC1)"
}

net/unblock_ip

Разблокирует ранее заблокированный IP-адрес на сервере. Требует прав администратора или совпадения с причиной блокировки.

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/net" -X POST \
--data "action=unblock_ip" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "ip=VALUE"
Пример успешного ответа
{
  "result": "OK",
  "action": "unblock_ip",
  "callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
  "code": -1,
  "message": "permission denied to remove block for 192.168.1.50. Please contract support."
}

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