This day is inspired by the article “Визуализация сетевых топологий, или зачем еще сетевому инженеру Python #2”. I wrote Golang program that analyzes the output of the cisco sh int, sh mac-address-table (for switches) or sh ip arp (for routers) commands and vizualizes network topology from mac address tables. I only used mac address information, not LLDP (CDP).
NeXt Ui (Github) is used for visualization.
For example, I received an output with self-made telnet client on Golang from a network of this topology:
...
Пакет Go easyjson от Mail.Ru предоставляет быстрый и простой способ маршалировать/демаршалировать структуры Go в/из JSON основанный на рефлексии. В тестах производительности easyjson превосходит стандартный encoding/json пакет в несколько раз (сравнительный benchmark в конце).
Установка и использование (OS Windows) Должна быть установлена переменная окружения GOPATH. У меня:
echo %GOPATH%
d:\projects-go\
И должен быть установлен git.
Cтавим easyjson:
go get -u github.com/mailru/easyjson/...
в %GOPATH%\bin появится easyjson.exe
В каталоге нашего проекта создаем подкаталог, он же пакет go, отличный от main (это обязательно), например %GOPATH%\project\model
...
Ставим keyring
pip install keyring
Выполняем
import keyring
keyring.set_password("system", "username", "password")
Результат
Доступ к данным
keyring.get_password("system", "username")
'password'