Advertisement
Guest User

Untitled

a guest
Jun 29th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "flag"
  5. "fmt"
  6. "log"
  7. "time"
  8.  
  9. "github.com/Netwurx/routeros-api-go"
  10. )
  11.  
  12. var (
  13. routerOsIP = flag.String("ip", "192.168.0.1:8728", "RouterOS IP")
  14. routerOsUser = flag.String("user", "admin", "RouterOS username")
  15. routerOsPass = flag.String("pass", "admin", "RouterOS password")
  16. )
  17.  
  18. func main() {
  19. flag.Parse()
  20.  
  21. ros, err := routeros.New(*routerOsIP)
  22. if err != nil {
  23. log.Fatal(err)
  24. }
  25.  
  26. err = ros.Connect(*routerOsUser, *routerOsPass)
  27. if err != nil {
  28. log.Fatal(err)
  29. }
  30.  
  31. query := routeros.Query{
  32. Pairs: []routeros.Pair{{Key: "disabled", Value: "false"}, {Key: "running", Value: "true"}},
  33. Proplist: []string{"name", "rx-byte", "tx-byte", "rx-packet", "tx-packet"},
  34. }
  35.  
  36. for {
  37. res, err := ros.Query("/interface/print", query)
  38. if err != nil {
  39. log.Fatal(err)
  40. }
  41.  
  42. if len(res.Pairs) > 0 {
  43. log.Fatalf("RouterOS error: %+v", res)
  44. }
  45.  
  46. for _, p := range res.SubPairs {
  47. for _, k := range query.Proplist {
  48. fmt.Print(p[k], "\t")
  49. }
  50. fmt.Print("\n")
  51. }
  52. fmt.Print("\n")
  53.  
  54. time.Sleep(5 * time.Second)
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement