Требования
- Запущенный OpenVPN-сервер
- Включённый Management Interface
- PHP с поддержкой сокетов
Включение Management Interface
Добавьте следующую строку в конфигурацию сервера server.conf:
management localhost 7667
Перезапустите OpenVPN-сервер.
Получение списка подключённых пользователей (PHP)
Пример PHP-скрипта для получения онлайн-пользователей через Management Interface:
<?php
function get_online_users() {
$fp = fsockopen("localhost", 7667, $errno, $errstr, 30);
if (!$fp) {
return [];
} else {
fwrite($fp, "status\n");
$data = [];
$do_get = false;
while (!feof($fp)) {
$get = fgets($fp, 128);
if (preg_match('#ROUTING TABLE#', $get))
break;
if ($do_get)
$data[] = $get;
if (preg_match('#Common Name#i', $get))
$do_get = true;
}
fclose($fp);
}
return $data;
}
print_r(get_online_users());
?>
Результат
- Скрипт подключается к Management Interface OpenVPN
- Выполняет команду
status - Возвращает список активных подключений
TAGS: OpenVPN, management interface, PHP, VPN, monitoring