forked from tiebingzhang/WapSNMP
-
Notifications
You must be signed in to change notification settings - Fork 4
/
getTable.go
46 lines (38 loc) · 1.05 KB
/
getTable.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package main
import (
"flag"
"fmt"
"time"
WapSNMP "github.com/cdevr/WapSNMP"
)
//"google3/experimental/users/cde/WapSNMP/WapSNMP"
var target = flag.String("target", "", "The host to connect to")
var community = flag.String("community", "", "The community to use")
var oid_string = flag.String("oid", "", "The oid of the table to get")
func DoGetTable() {
flag.Parse()
fmt.Printf("target=%v\ncommunity=%v\noid=%v\n", *target, *community, *oid_string)
version := WapSNMP.SNMPv2c
oid, err := WapSNMP.ParseOid(*oid_string)
if err != nil {
fmt.Printf("Error parsing oid '%v' : %v", *oid_string, err)
}
fmt.Printf("Contacting %v %v %v\n", *target, *community, version)
wsnmp, err := WapSNMP.NewWapSNMP(*target, *community, version, 2*time.Second, 3)
if err != nil {
fmt.Printf("Error creating wsnmp => %v\n", err)
return
}
defer wsnmp.Close()
table, err := wsnmp.GetTable(oid)
if err != nil {
fmt.Printf("Error getting table => %v\n", err)
return
}
for k, v := range table {
fmt.Printf("%v => %v\n", k, v)
}
}
func main() {
DoGetTable()
}