Class: SNMP::IpAddress

Inherits:
Object
  • Object
show all
Defined in:
lib/snmp/varbind.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value_data) ⇒ IpAddress

Create an IpAddress object. The constructor accepts either a raw four-octet string or a formatted string of integers separated by dots (i.e. “10.1.2.3”).



240
241
242
243
244
245
246
247
248
# File 'lib/snmp/varbind.rb', line 240

def initialize(value_data)
    ip = value_data.to_str
    if ip.length > 4
        ip = parse_string(ip)
    elsif ip.length != 4
        raise InvalidIpAddress, "Expected 4 octets or formatted string, got #{value_data.inspect}"
    end
    @value = ip
end

Class Method Details

.decode(value_data) ⇒ Object



226
227
228
# File 'lib/snmp/varbind.rb', line 226

def decode(value_data)
    IpAddress.new(value_data)
end

Instance Method Details

#==(other) ⇒ Object



272
273
274
275
276
277
278
# File 'lib/snmp/varbind.rb', line 272

def ==(other)
    if other.respond_to? :to_str
        return @value.eql?(other.to_str)
    else
        return false
    end
end

#asn1_typeObject



231
232
233
# File 'lib/snmp/varbind.rb', line 231

def asn1_type
    "IpAddress"
end

#encodeObject



288
289
290
# File 'lib/snmp/varbind.rb', line 288

def encode
    encode_tlv(IpAddress_TAG, @value)
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


280
281
282
# File 'lib/snmp/varbind.rb', line 280

def eql?(other)
    self == other
end

#hashObject



284
285
286
# File 'lib/snmp/varbind.rb', line 284

def hash
    @value.hash
end

#to_oidObject



266
267
268
269
270
# File 'lib/snmp/varbind.rb', line 266

def to_oid
    oid = ObjectId.new
    @value.each_byte { |b| oid << b }
    oid
end

#to_sObject

Returns a formatted, dot-separated string representing this IpAddress.



260
261
262
263
264
# File 'lib/snmp/varbind.rb', line 260

def to_s
    octets = []
    @value.each_byte { |b| octets << b.to_s }
    octets.join('.')    
end

#to_strObject

Returns a raw four-octet string representing this IpAddress.



253
254
255
# File 'lib/snmp/varbind.rb', line 253

def to_str
    @value.dup
end