Class Dnsruby::Resolv
In: lib/dnsruby.rb
Parent: Object
Message Update ResolvError EncodeError OtherResolvError ServFail FormErr DecodeError NXRRSet YXDomain NotImp NXDomain VerifyError NotAuth YXRRSet NotZone Refused TsigError CodeMapper Types MetaTypes QTypes Nsec3HashAlgorithms Algorithms OpCode Classes ExtendedRCode Modes RCode Comparable Name RRSet TsigNotSignedResponseError Resolver SingleResolver StandardError TimeoutError ResolvTimeout DNS Dnssec Hosts RR\n[lib/Dnsruby/resource/A.rb\nlib/Dnsruby/resource/AAAA.rb\nlib/Dnsruby/resource/AFSDB.rb\nlib/Dnsruby/resource/CERT.rb\nlib/Dnsruby/resource/DHCID.rb\nlib/Dnsruby/resource/DLV.rb\nlib/Dnsruby/resource/DNSKEY.rb\nlib/Dnsruby/resource/DS.rb\nlib/Dnsruby/resource/HINFO.rb\nlib/Dnsruby/resource/HIP.rb\nlib/Dnsruby/resource/IN.rb\nlib/Dnsruby/resource/IPSECKEY.rb\nlib/Dnsruby/resource/ISDN.rb\nlib/Dnsruby/resource/KX.rb\nlib/Dnsruby/resource/LOC.rb\nlib/Dnsruby/resource/MINFO.rb\nlib/Dnsruby/resource/MX.rb\nlib/Dnsruby/resource/NAPTR.rb\nlib/Dnsruby/resource/NSAP.rb\nlib/Dnsruby/resource/NSEC.rb\nlib/Dnsruby/resource/NSEC3.rb\nlib/Dnsruby/resource/NSEC3PARAM.rb\nlib/Dnsruby/resource/OPT.rb\nlib/Dnsruby/resource/PX.rb\nlib/Dnsruby/resource/RP.rb\nlib/Dnsruby/resource/RRSIG.rb\nlib/Dnsruby/resource/RT.rb\nlib/Dnsruby/resource/SOA.rb\nlib/Dnsruby/resource/SPF.rb\nlib/Dnsruby/resource/SRV.rb\nlib/Dnsruby/resource/SSHFP.rb\nlib/Dnsruby/resource/TKEY.rb\nlib/Dnsruby/resource/TSIG.rb\nlib/Dnsruby/resource/TXT.rb\nlib/Dnsruby/resource/X25.rb\nlib/Dnsruby/resource/domain_name.rb\nlib/Dnsruby/resource/generic.rb\nlib/Dnsruby/resource/resource.rb] Recursor IPv6 IPv4 ZoneTransfer MessageDecoder MessageEncoder Question Header TheLog ValidatorThread PacketSender ResolverRuby Config KeyCache Cache SingleVerifier SelectThread Resolv ZoneReader lib/Dnsruby/DNS.rb lib/Dnsruby/dnssec.rb lib/Dnsruby/Hosts.rb lib/Dnsruby/resource/generic.rb lib/Dnsruby/Recursor.rb lib/Dnsruby/update.rb lib/Dnsruby/ipv6.rb lib/Dnsruby/ipv4.rb lib/Dnsruby/code_mapper.rb lib/Dnsruby/zone_transfer.rb lib/Dnsruby/message.rb lib/Dnsruby/TheLog.rb lib/Dnsruby/resource/resource.rb lib/Dnsruby/validator_thread.rb lib/Dnsruby/PacketSender.rb lib/Dnsruby/Resolver.rb lib/Dnsruby/Config.rb lib/Dnsruby/key_cache.rb lib/Dnsruby/Cache.rb lib/Dnsruby/single_verifier.rb lib/Dnsruby/SingleResolver.rb lib/Dnsruby/select_thread.rb lib/Dnsruby/name.rb lib/dnsruby.rb lib/Dnsruby/resource/TKEY.rb lib/Dnsruby/zone_reader.rb Dnsruby dot/m_61_0.png

The Resolv class can be used to resolve addresses using /etc/hosts and /etc/resolv.conf,

The DNS class may be used to perform more queries. If greater control over the sending of packets is required, then the Resolver or SingleResolver classes may be used.

Methods

Constants

DefaultResolver = self.new   Default Resolver to use for Dnsruby class methods
AddressRegex = /(?:#{IPv4::Regex})|(?:#{IPv6::Regex})/   Address RegExp to use for matching IP addresses

Public Class methods

Iterates over all IP addresses for name

[Source]

     # File lib/dnsruby.rb, line 498
498:     def self.each_address(name, &block)
499:       DefaultResolver.each_address(name, &block)
500:     end

Iterates over all hostnames of address

[Source]

     # File lib/dnsruby.rb, line 513
513:     def self.each_name(address, &proc)
514:       DefaultResolver.each_name(address, &proc)
515:     end

Looks up the first IP address for name

[Source]

     # File lib/dnsruby.rb, line 488
488:     def self.getaddress(name)
489:       DefaultResolver.getaddress(name)
490:     end

Looks up all IP addresses for name

[Source]

     # File lib/dnsruby.rb, line 493
493:     def self.getaddresses(name)
494:       DefaultResolver.getaddresses(name)
495:     end

Looks up the first hostname of address

[Source]

     # File lib/dnsruby.rb, line 503
503:     def self.getname(address)
504:       DefaultResolver.getname(address)
505:     end

Looks up all hostnames of address

[Source]

     # File lib/dnsruby.rb, line 508
508:     def self.getnames(address)
509:       DefaultResolver.getnames(address)
510:     end

Creates a new Resolv using resolvers

[Source]

     # File lib/dnsruby.rb, line 518
518:     def initialize(resolvers=[Hosts.new, DNS.new])
519:       @resolvers = resolvers
520:     end

Public Instance methods

Iterates over all IP addresses for name

[Source]

     # File lib/dnsruby.rb, line 536
536:     def each_address(name)
537:       if AddressRegex =~ name
538:         yield name
539:         return
540:       end
541:       yielded = false
542:       @resolvers.each {|r|
543:         r.each_address(name) {|address|
544:           yield address.to_s
545:           yielded = true
546:         }
547:         return if yielded
548:       }
549:     end

Iterates over all hostnames of address

[Source]

     # File lib/dnsruby.rb, line 565
565:     def each_name(address)
566:       yielded = false
567:       @resolvers.each {|r|
568:         r.each_name(address) {|name|
569:           yield name.to_s
570:           yielded = true
571:         }
572:         return if yielded
573:       }
574:     end

Looks up the first IP address for name

[Source]

     # File lib/dnsruby.rb, line 523
523:     def getaddress(name)
524:       each_address(name) {|address| return address}
525:       raise ResolvError.new("no address for #{name}")
526:     end

Looks up all IP addresses for name

[Source]

     # File lib/dnsruby.rb, line 529
529:     def getaddresses(name)
530:       ret = []
531:       each_address(name) {|address| ret << address}
532:       return ret
533:     end

Looks up the first hostname of address

[Source]

     # File lib/dnsruby.rb, line 552
552:     def getname(address)
553:       each_name(address) {|name| return name}
554:       raise ResolvError.new("no name for #{address}")
555:     end

Looks up all hostnames of address

[Source]

     # File lib/dnsruby.rb, line 558
558:     def getnames(address)
559:       ret = []
560:       each_name(address) {|name| ret << name}
561:       return ret
562:     end

[Validate]