48 lines
816 B
Go
48 lines
816 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
|
|
"github.com/gosnmp/gosnmp"
|
|
)
|
|
|
|
func main() {
|
|
host := "127.0.0.1"
|
|
port := uint16(9162)
|
|
msg := "E2E-TRAP-GO"
|
|
if len(os.Args) > 1 && os.Args[1] != "" {
|
|
host = os.Args[1]
|
|
}
|
|
if len(os.Args) > 2 && os.Args[2] != "" {
|
|
msg = os.Args[2]
|
|
}
|
|
g := &gosnmp.GoSNMP{
|
|
Target: host,
|
|
Port: port,
|
|
Version: gosnmp.Version2c,
|
|
Community: "public",
|
|
Timeout: 2 * time.Second,
|
|
Retries: 1,
|
|
}
|
|
if err := g.Connect(); err != nil {
|
|
panic(err)
|
|
}
|
|
defer g.Conn.Close()
|
|
|
|
trap := gosnmp.SnmpTrap{
|
|
Variables: []gosnmp.SnmpPDU{
|
|
{
|
|
Name: "1.3.6.1.2.1.1.1.0",
|
|
Type: gosnmp.OctetString,
|
|
Value: msg,
|
|
},
|
|
},
|
|
}
|
|
if _, err := g.SendTrap(trap); err != nil {
|
|
panic(err)
|
|
}
|
|
fmt.Println("trap_sent")
|
|
}
|