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