gosnmp

Форк
0
58 строк · 1.4 Кб
1
// Copyright 2012 The GoSNMP Authors. All rights reserved.  Use of this
2
// source code is governed by a BSD-style license that can be found in the
3
// LICENSE file.
4

5
package main
6

7
import (
8
	"fmt"
9
	"log"
10
	"os"
11
	"time"
12
	g "github.com/gosnmp/gosnmp"
13
)
14

15
const (
16
	On  int = 1
17
	Off     = 2
18
)
19

20
func main() {
21
	var Client = &g.GoSNMP{
22
		Target:    "192.168.91.20",
23
		Port:      161,
24
		Community: "private",
25
		Version:   g.Version2c,
26
		Timeout:   time.Duration(2) * time.Second,
27
		Logger:    g.NewLogger(log.New(os.Stdout, "", 0)),
28
	}
29
	err := Client.Connect()
30
	if err != nil {
31
		log.Fatalf("Connect() err: %v", err)
32
	}
33
	defer Client.Conn.Close()
34
	var mySnmpPDU = []g.SnmpPDU{{
35
		Name:  "1.3.6.1.4.1.318.1.1.4.4.2.1.3.15",
36
		Type:  g.Integer,
37
		Value: On,
38
	}}
39
	setResult, setErr := Client.Set(mySnmpPDU)
40
	if setErr != nil {
41
		log.Fatalf("SNMP set() fialed due to err: %v", setErr)
42
	}
43
	for i, variable := range setResult.Variables {
44
		fmt.Printf("%d: oid: %s ", i, variable.Name)
45

46
		// the Value of each variable returned by Get() implements
47
		// interface{}. You could do a type switch...
48
		switch variable.Type {
49
		case g.OctetString:
50
			fmt.Printf("string: %s\n", string(variable.Value.([]byte)))
51
		default:
52
			// ... or often you're just interested in numeric values.
53
			// ToBigInt() will return the Value as a BigInt, for plugging
54
			// into your calculations.
55
			fmt.Printf("number: %d\n", g.ToBigInt(variable.Value))
56
		}
57
	}
58
}
59

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.