class SNMPTransport
Attributes
host[RW]
manager[RW]
Public Class Methods
new(host, community = 'public')
click to toggle source
# File lib/arpdb/snmp_transport.rb, line 7 def initialize(host, community = 'public') @host = host @manager = SNMP::Manager.new(host: host, community: community, mib_modules: [], retries: 1) end
Public Instance Methods
get(oid)
click to toggle source
# File lib/arpdb/snmp_transport.rb, line 24 def get(oid) manager.get(oid).each_varbind { |vb| return decode_value(vb) } end
walk(oids)
click to toggle source
# File lib/arpdb/snmp_transport.rb, line 12 def walk(oids) result = Array.new manager.walk(oids) do |snmp_row| row = Array.new snmp_row.each do |vb| row << decode_value(vb) end result << row end result end
Private Instance Methods
decode_value(vb)
click to toggle source
# File lib/arpdb/snmp_transport.rb, line 30 def decode_value(vb) # Absolutely ugly hack to decide if value needs to be unpacked. # Add OIDs known to return packed/binary data here. # Please recommend correct solution for this. if vb.name.to_s =~ /1\.3\.6\.1\.2\.1\.4\.22\.1\.2/ vb.value.unpack('H*').first else vb.value.to_s end end