snmp-0.1.0.1: API for write snmp client.

Safe HaskellNone

Network.Snmp.Example

Contents

Synopsis

Usage

Imports

 -- imports here
 import Data.ByteString (ByteString)
 import Control.Exception (bracket, try)
 
 import Network.Snmp.Client
 import Network.Protocol.Snmp

Create config

 -- First you must create config
 -- For SNMPv3
 conf2 :: Config
 conf2 = (initial Version2) { hostname = "salt" 
                            , community = Community "helloall"
                            } 
 
 -- For SNMPv3
 conf3 :: Config
 conf3 = (initial Version3) { hostname = "salt" 
                            , sequrityName = "aes"
                            , authPass = "helloallhello"
                            , privPass = "helloallhello"
                            , authType = SHA
                            , privType = AES
                            , sequrityLevel = AuthPriv
                            } 
 

Describe oids

 -- Describe oids which you need
 root, eth0, tabl, ipAddr, zeroDotZero :: [Integer]
 root = [1,3,6,1,2,1,2,2,1,2]
 eth0 = [1,3,6,1,2,1,2,2,1,2,1]
 tabl = [31,1,1,1,1]
 ipAddr = [1,3,6,1,2,1,4,22,1,3,3,192,168,3,1]
 zeroDotZero = [1,3,6,1,2,1,2,2,1,22,20]
 
 oi, sysUptime, memory, sysContact, bad, testOid :: ByteString
 oi = ".1.3.6.1.2.1.1.9.1.2.1"
 sysUptime = "1.3.6.1.2.1.25.1.1.0"
 memory = "1.3.6.1.2.1.25.2"
 sysContact = "1.3.6.1.2.1.1.4.0"
 bad = "1.4.6.1.2.1.1.4"
 testOid = "1.3.6.1.2.1.25.1.1.0"

Describe requests

 -- Describe requests
 requests :: Client -> IO ()
 requests snmp = do
     print "get request"
     putStr . show =<< get snmp [oidFromBS testOid]
     putStr . show =<< get snmp [oidFromBS testOid]
     putStr . show =<< get snmp [oidFromBS sysUptime, oidFromBS oi, zeroDotZero]
     print "bulkget request"
     putStr . show =<< bulkget snmp [oidFromBS sysUptime]
     print "getnext request"
     putStr . show =<< getnext snmp [oidFromBS sysUptime]
     print "walk memory"
     putStr . show =<< walk snmp [oidFromBS memory]
     print "bulkwalk memory"
     putStr . show =<< bulkwalk snmp [oidFromBS memory]
     print "get sysContact"
     putStr . show =<< get snmp [oidFromBS sysContact]
     print "set sysContact"
     putStr . show =<< (try $ set snmp (Suite [Coupla (oidFromBS sysContact) (String "hello all")]) :: IO (Either ClientException Suite))
     print "get sysContact"
     putStr . show =<< get snmp [oidFromBS sysContact]

Do IO

 -- do io 
 client3 :: IO ()
 client3 = bracket (client conf3)
                   close
                   requests
 
 client2 :: IO ()
 client2 = bracket (client conf2)
                   close
                   requests