Resolv::IPv4 (Class)

In: resolv.rb
Parent: Object

Methods

==   create   eql?   hash   inspect   new   to_name   to_s  

Constants

Regex = /\A(\d+)\.(\d+)\.(\d+)\.(\d+)\z/

Attributes

address  [R] 

Public Class methods

[Source]

# File resolv.rb, line 1600
    def self.create(arg)
      case arg
      when IPv4
        return arg
      when Regex
        if (0..255) === (a = $1.to_i) &&
           (0..255) === (b = $2.to_i) &&
           (0..255) === (c = $3.to_i) &&
           (0..255) === (d = $4.to_i)
          return self.new([a, b, c, d].pack("CCCC"))
        else
          raise ArgumentError.new("IPv4 address with invalid value: " + arg)
        end
      else
        raise ArgumentError.new("cannot interpret as IPv4 address: #{arg.inspect}")
      end
    end

[Source]

# File resolv.rb, line 1618
    def initialize(address)
      unless address.kind_of?(String) && address.length == 4
        raise ArgumentError.new('IPv4 address must be 4 bytes')
      end
      @address = address
    end

Public Instance methods

[Source]

# File resolv.rb, line 1639
    def ==(other)
      return @address == other.address
    end

[Source]

# File resolv.rb, line 1643
    def eql?(other)
      return self == other
    end

[Source]

# File resolv.rb, line 1647
    def hash
      return @address.hash
    end

[Source]

# File resolv.rb, line 1630
    def inspect
      return "#<#{self.class} #{self.to_s}>"
    end

[Source]

# File resolv.rb, line 1634
    def to_name
      return DNS::Name.create(
        '%d.%d.%d.%d.in-addr.arpa.' % @address.unpack('CCCC').reverse)
    end

[Source]

# File resolv.rb, line 1626
    def to_s
      return sprintf("%d.%d.%d.%d", *@address.unpack("CCCC"))
    end

[Validate]