require 'snmp'
module SNMP
class OctetString
def to_date_time
raise ArgumentError, "not DateAndTime format" if size != 8 and size != 11
year = self[0].ord * 256 + self[1].ord
month = self[2].ord
day = self[3].ord
hour = self[4].ord
minutes = self[5].ord
seconds = self[6].ord
tenths = self[7].ord
sprintf("%d-%d-%d,%02d:%02d:%02d.%d", year, month, day, hour, minutes, seconds, tenths)
end
end
end
SNMP::Manager.open(:Host => 'localhost', :MibModules => ["HOST-RESOURCES-MIB"]) do |snmp|
response = snmp.get_value("hrSystemDate.0")
puts response.to_date_time
end