Ниже не проверялись. 3.0+ тоже не проверял, но думаю время придёт рано или поздно
go get -u github.com/mimimix/go-keenetic-api
router := keenetic.NewKeenetic("admin", "pass", "http://192.168.1.1")
err, cookies := router.Login() // Вообще он сам проверяет аунтефикация при любом запросе и когда надо перезаходит
router := keenetic.NewKeenetic("admin", "pass", "http://192.168.1.1")
devices, err := router.DeviceList() // Получает список устройств, поля смотреть в автокомплите
Сообщает когда в сеть заходит или выходит клиент
router := keenetic.NewKeenetic("admin", "pass", "http://192.168.1.1")
poll := poller.NewPoller(router, 5) // 5 - это интервал
poll.Start()
poll.Stop()
go func() {
for {
event := <-poll.Channel
s, _ := prettyjson.Marshal(event)
fmt.Println(string(s))
}
}()
В канал кидает событие с девайсом и новым состоянием онлайна
type PollEvent struct {
IsOnline bool
Device *zyxel.Device
}