/// <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; }
/// <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); }
/// <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; }
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"; } } }