Perl API
NeTAMS представляет собой достаточно гибкий инструмент учета трафика и установки некоторых ограничений на работу пользователей. Круг задач, которые можно решить с использованием данной программы, чрезвычайно широк, и у каждого администратора есть свои пожелания по организации работы программы и тому, как она взаимодействует с пользователями. Для облегчения задачи настройки и использования NeTAMS под ваши конкретные задачи был создан интерфейс в виде ряда функций, который позволяет управлять программой и получать от нее данные из ваших написанных самостоятельно Perl-скриптов и CGI-программ.
Для применения интерфейса вы должны включить в начало вашей программы строку:
require "netams_api.pl"
Вот список функций, которые определены в этом интерфейсе:
- $result=netams_login($hostname, $port, $username, $password); - осуществляет соединение с программой, используя указанные параметры. Если $result начинается со слов "Welcome", то соединение прошло успешно
- netams_send($command); - отправляет команду $command на исполнение
- $result=netams_read(); - считывает в переменную $result результат выполнения команды
- $result=netams_readline(); - то же самое, но программа ожидает вывода признака конца строки (перевод строки, "\n"). использовать не рекомендуется
- netams_logout(); - осуществляет разрыв соединения.
Вот список идущих с программой скриптов, которые можно применять на практике или рассматривать как примеры программирования общения с NeTAMS:
- netams_example.cgi - выводит результат выполнения команды show version в виде cgi-программы. после небольшой модификации превращается в утилиту командной строки.
- login.cgi - интерфейс к сервису login.
- netams_graph.cgi - программа, динамически создающая картинки в формате PNG с графическим отображением статистики для заданного юнита и всех его политик учета, за последние неделю или месяц. параметры вызова (метод GET):
unit=UNIT_NAME - обязательный параметр, определяет имя юнита, для которого будет рисоваться картинка
policy=POLICY_NAME - имя политики, которая будет отображаться. при отсутствии параметра policy будут отрисованы все активные политики.
prefix=PREFIX - буква, определяющая временной период графика, W (неделя) или M (месяц) соответственно, по умолчанию =W
nolegend=FLAG - при любом установленном значении запрещает отрисовку легенды с отображением цвета, которым будет отрисовываться данные о политике.
Данный скрипт использует модули GD.pm и библиотеку libgd. Для FreeBSD вам надо выполнить что-то вроде cd /usr/ports/graphics/p5-GD ; make install. В текущем каталоге необходимо иметь файл lucon.ttf, это TrueType-шрифт Lucida Console из дистрибутива Windows XP.