Пример #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SnmpDatagram"/> class.
 /// Copy construtor
 /// </summary>
 /// <param name="snmpPacket">The SNMP packet.</param>
 public SnmpDatagram(SnmpDatagram snmpPacket)
 {
     Header = snmpPacket.Header;
     PDU    = snmpPacket.PDU;
 }
Пример #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SnmpDatagram"/> class.
 /// </summary>
 /// <param name="pduType">Type of the pdu.</param>
 /// <param name="snmpVersion">The SNMP version.</param>
 /// <param name="community">The community.</param>
 /// <param name="requestId">The request identifier.</param>
 /// <param name="errorStatus">The error status.</param>
 /// <param name="errorIndex">Index of the error.</param>
 /// <param name="varBinds">The variable binds.</param>
 public SnmpDatagram(PduType pduType, SnmpVersion snmpVersion, string community, int requestId, SnmpErrorStatus errorStatus, int errorIndex, VarBind[] varBinds)
 {
     Header = new SnmpHeader(snmpVersion, community);
     PDU    = new SnmpPDU(pduType, requestId, errorStatus, errorIndex, varBinds);
 }
Пример #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SnmpDatagram"/> class.
 /// </summary>
 /// <param name="snmpHeader">The SNMP header.</param>
 /// <param name="snmpPDU">The SNMP pdu.</param>
 public SnmpDatagram(SnmpHeader snmpHeader, SnmpPDU snmpPDU)
 {
     Header = snmpHeader;
     PDU    = snmpPDU;
 }
Пример #4
0
            public string get(string ip, string community, string oid, int timeout, int retry)
            {
                IPAddress ipaddr = IPAddress.Parse(ip);
                SnmpAPI api = new SnmpAPI();
                api.Debug = false;
                SnmpSession session = new SnmpSession(api);

                try
                {
                    session.Open();
                }
                catch (SnmpException e)
                {
                    error = "Error opening socket: " + e;
                    return "false";
                }

                SnmpPDU pdu = new SnmpPDU();

                UDPProtocolOptions option = new UDPProtocolOptions(ipaddr, 161);
                pdu.ProtocolOptions = option;
                pdu.Community = community;
                pdu.Timeout = timeout;
                pdu.Retries = retry;
                pdu.Command = SnmpAPI.GET_REQ_MSG;

                SnmpOID send_oid = new SnmpOID(oid);
                pdu.AddNull(send_oid);

                SnmpPDU result = null;
                try
                {
                    result = session.SyncSend(pdu);
                }
                catch (SnmpException e)
                {
                    error = "Error sending SNMP request: " + e;
                    return "false";
                }

                if (result == null)
                {
                    error = "Request timed out!";
                    return "false";
                }
                else
                {
                    if (result.Errstat == 0)
                    {
                        session.Close();
                        api.Close();
                        return result.GetVariable(0).ToString();
                    }
                    else
                    {
                        session.Close();
                        api.Close();
                        error = result.Error;
                        return "false";
                    }
                }
            }