class String

Extend string to include some helpful stuff

Public Instance Methods

fqdn?() click to toggle source
# File lib/string_ext.rb, line 101
def fqdn?
  begin
    resolve_fqdn
  rescue SocketError, Timeout::Error
    return false
  end

  if ip_addr?
    return false
  else
    return true
  end
end
hexify() click to toggle source
# File lib/string_ext.rb, line 11
def hexify
  self.each_byte.map { |b| b.to_s(16).rjust(2,'0') }.join
end
ip_addr?() click to toggle source
# File lib/string_ext.rb, line 15
def ip_addr?
  begin
    IPAddr.new(self)

  # Using ArgumentError instead of IPAddr::InvalidAddressError
  # for 1.9.3 backward compatibility
  rescue ArgumentError
    return false
  end

  return true
end
resolve_fqdn() click to toggle source
# File lib/string_ext.rb, line 57
def resolve_fqdn
  begin
    IPSocket.getaddress(self)
  rescue SocketError
    nil # Can return anything you want here
  end
end
resolve_fqdn_as_ipv4(timeout = 3) click to toggle source
# File lib/string_ext.rb, line 42
def resolve_fqdn_as_ipv4(timeout = 3)
  begin
    Timeout::timeout(timeout) {
      Resolv::DNS.open do |dns|
        ress = dns.getresources self, Resolv::DNS::Resource::IN::A
        temp = ress.map { |r| r.address  }
        return temp[0]
      end
    }
  rescue Timeout::Error
    return ""
  end

end
resolve_fqdn_as_ipv6(timeout = 3) click to toggle source
# File lib/string_ext.rb, line 28
def resolve_fqdn_as_ipv6(timeout = 3)
  begin
    Timeout::timeout(timeout) {
      Resolv::DNS.open do |dns|
        ress = dns.getresources self, Resolv::DNS::Resource::IN::AAAA
        temp = ress.map { |r| r.address  }
        return temp[0]
      end
    }
  rescue Timeout::Error
    return ""
  end
end
resolve_ptr(timeout = 3) click to toggle source
# File lib/string_ext.rb, line 65
def resolve_ptr(timeout = 3)
  begin
    Timeout::timeout(timeout) {
      reversed_dns = Resolv.new.getname(self)
      return reversed_dns
    }
  rescue Timeout::Error,Resolv::ResolvError
    return ""
  end
end
unhexify() click to toggle source
# File lib/string_ext.rb, line 7
def unhexify
  [self].pack("H*")
end