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

net.php

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

Методы API

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

net/add_ipv4

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

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: add_ipv4
token string Токен авторизации пользователя
id int Идентификатор сервера, к которому добавляются адреса
amount int Количество IP-адресов для добавления (если не указаны конкретные IPs)
port string Название сетевого интерфейса (например, eth0, ipmi)
vlan int ID VLAN для назначения адресов. Если не указан, используется VLAN интерфейса или определяется автоматически
ip string Конкретный IP-адрес для добавления (если не используется автоматический подбор)
ips array<string> Массив конкретных IP-адресов для добавления. Принимает несколько значений: ips[]=1.2.3.4&ips[]=1.2.3.5
tag string Тег для сети (например, ipmi, ovirt, bm). Используется для определения подсети при автоматическом подборе
allow_tech_networks int Флаг разрешения добавления адресов из технических сетей (для администраторов)
fresh_period int Период в днях для фильтрации 'свежих' IP-адресов

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

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

net/block_ip

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

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/net.php" -X POST \
--data "action=block_ip" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "ip=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "block_ip",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "failed to send BIRD management command"
}

net/get_status

Возвращает текущий статус сетевого интерфейса (порт) для указанного сервера. Автоматически определяет порт, если не указан явно.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: get_status
token string Токен авторизации пользователя
id int Идентификатор сервера (server_id)
port string Название порта (например, eth0, ipmi). Если не указан, выбирается основной интерфейс автоматически.
vlan string Идентификатор VLAN
speed string Скорость порта
port_security int Настройки безопасности порта (лимит MAC)
trunc string Параметр обрезки трафика
status int Статус интерфейса
duplex string Режим дуплекса
port_virt_node string Идентификатор виртуального узла порта

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

curl -s "https://invapi.hostkey.ru/net.php" -X POST \
--data "action=get_status" \
--data "token=HOSTKEY_TOKEN" \
--data "id=12345" \
--data "port=eth0"
Пример успешного ответа
{
"result": "OK",
"action": "get_status",
"data": {
"id": 12345,
"port": "eth0",
"status": "up",
"speed": "10000",
"duplex": "full",
"vlan": 100,
"mac": "00:1A:2B:3C:4D:5E",
"ip": "192.168.1.10",
"switch_id": 50,
"switch_port": "Gi1/0/1",
"location": "AMS",
"port_security": 1,
"trunc": "none"
}
}
Примеры ошибок
{
"code": -1,
"message": "net/get_status: invalid request for server 12345 with port eth0"
}

net/port_off

Отключает указанный сетевой порт сервера. Если передан параметр reason, добавляется тег блокировки с указанной причиной.

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/net.php" -X POST \
--data "action=port_off" \
--data "token=HOSTKEY_TOKEN" \
--data "id=12345" \
--data "port=eth0" \
--data "reason=Abuse detected"
Пример успешного ответа
{
"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

Включает указанный сетевой порт сервера, снимая блокировку (tag 'block'), если она была наложена пользователем.

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/net.php" -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 Идентификатор сервера, с которого удаляются IP
ip string IPv4 адрес для удаления. Если не указан, действие не выполняется
remove_all int Флаг для удаления всех IP адресов с сервера (1 - удалить все, 0 - только указанный)

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

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

net/show_cacti

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

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/net.php" -X POST \
--data "action=show_cacti" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "show_cacti",
"data": {
"id": 12345,
"port": "eth0",
"graphs": [
{
"title": "Traffic In/Out",
"url": "https://cacti.example.com/graph.php?id=5678",
"image": "data:image/png;base64,iVBORw0KGgoAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
}
]
}
}
Примеры ошибок
{
"code": -1,
"message": "invalid request"
}

net/show_ipv4_free

Возвращает список доступных свободных IPv4 адресов для указанного сервера, порта и VLAN. Поддерживает фильтрацию по тегам и периоду свежести.

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/net.php" -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.10",
"vlan": 100,
"subnet": "192.168.1.0/24",
"location": "AMS",
"status": "free"
},
{
"ip": "192.168.1.11",
"vlan": 100,
"subnet": "192.168.1.0/24",
"location": "AMS",
"status": "free"
}
],
"subnets": [
{
"network": "192.168.1.0",
"mask": 24,
"broadcast": "192.168.1.255",
"total": 254,
"free": 2
}
],
"res": {
"total_found": 2,
"filtered": 0
},
"total_ips": 2,
"fresh": -1
}
Примеры ошибок
{
"code": -1,
"message": "invalid request - invalid id 0"
}

net/unblock_ip

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

HTTP-метод: POST

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/net.php" -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.1. Please contract support."
}

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