Hello, world.
Выкладываю в общий доступ свою библиотеку для работы с L2-коммутаторами (DES-3xxx), написанную на PHP.
Библиотека используется в консоли управления "живой" сетью в такой вот реализации (с использованием dhtmlx):

Используя bootstrap можно быстро собрать что-то вот такое:

Поскольку реализация "живая", то на данный момент функционал ограничен только используемыми аспектами. Например, мы не используем IP-MAC binding и на данный момент этот функционал в библиотеке не реализован. Планы по развитию есть, но есть ли резон заморачиваться на выпуск их в паблик - пока неясно. Отдельно отмечу, что
библиотека - это только набор классов. Реализация интерфейса - забота программиста, который будет его писать и по сути библиотека является только инструментом для программиста. Цель её создания - унификация и стандартизация работы с коммутаторами. Например, унифицируется отдаваемое значение активного линка на порту (swL2PortInfoNwayStatus).
Системные требования:- PHP 5.3 или выше
- Net-SNMP
- Некоторые методы в качестве опции могут вызывать Perl-скрипт, соответственно, в этом случае будет нужен Perl и Net::SNMP для него.
Поддерживаемые модели:- DES-3018
- DES-3026
- DES-3526
- DES-3550
- DES-3200-26
- DES-3200-28
- DES-3200-28F
Поддерживаемые методы:- Диагностика кабеля
- Работа с общими параметрами (имя, метоположение, контактная информация, аптайм)
- Работа с FDB таблицей и permanent MAC-адресами
- Работа с портами
- Работа с port security
- Работа с bandwidth control и cos
- Базовая с VLAN'ами (создание, удаление, установка tagged/untagged vlan'а на порту, установка порта транзитным)
Отмазки:- Библиотека опасна. С её помощью можно удалить управляющий VLAN, включить STP на клиентском порту, закрыть транзитный порт и т.п. Используйте доступные проверки и будьте внимательны.
- Я не программист, поэтому код далёк от совершенства. Вполне допускаю, что паттерн "фабрика" не оптимален и можно было использовать "композит", но я админ, а не программист и такие аспекты пока не освоил. Помощи со стороны программистов получить не удалось - очень уж узкая специфика по работе с оборудованием.
- В ближайшее время документация будет дополнена информацией по расширению библиотеки и добавлению новых моделей.
Ссылки и информация: