golang发展挺快的,现在都已经1.9了。
现在也有了相对完备和可用的snmp库。
目前支持snmpv3的主要有2个库,star都很少,看起来用snmp的人不多啊。
github.com/soniah/gosnmp 293star
github.com/k-sone/snmpgo 73star
先分别测试一下
snmpv2
package main
import (
"fmt"
"log"
g "github.com/soniah/gosnmp"
)
func main() {
// Default is a pointer to a GoSNMP struct that contains sensible defaults
// eg port 161, community public, etc
g.Default.Target = "192.168.1.10"
err := g.Default.Connect()
if err != nil {
log.Fatalf("Connect() err: %v", err)
}
defer g.Default.Conn.Close()
oids := []string{"1.3.6.1.2.1.1.4.0", "1.3.6.1.2.1.1.7.0"}
result, err2 := g.Default.Get(oids) // Get() accepts up to g.MAX_OIDS
if err2 != nil {
log.Fatalf("Get() err: %v", err2)
}
for i, variable := range result.Variables {
fmt.Printf("%d: oid: %s ",