Class Dnsruby::Resolv
In: lib/dnsruby.rb
Parent: Object
ResolvError EncodeError OtherResolvError ServFail FormErr DecodeError NXRRSet YXDomain NotImp NXDomain VerifyError NotAuth YXRRSet NotZone Refused TsigError Message Update CodeMapper Types MetaTypes QTypes Nsec3HashAlgorithms Algorithms OpCode Classes ExtendedRCode RCode Modes Comparable Name RRSet Resolver SingleResolver StandardError TimeoutError ResolvTimeout DNS Dnssec Hosts SelectThread\n[lib/Dnsruby/select_thread.rb\nlib/Dnsruby/select_thread.rb.michael.rb] Recursor IPv6 IPv4 ZoneTransfer MessageDecoder MessageEncoder Question Header TheLog 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/DLV.rb\nlib/Dnsruby/resource/DNSKEY.rb\nlib/Dnsruby/resource/DS.rb\nlib/Dnsruby/resource/HINFO.rb\nlib/Dnsruby/resource/IN.rb\nlib/Dnsruby/resource/ISDN.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/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] ValidatorThread PacketSender ResolverRuby Config KeyCache Cache SingleVerifier Resolv Iana lib/Dnsruby/DNS.rb lib/Dnsruby/dnssec.rb lib/Dnsruby/Hosts.rb lib/Dnsruby/select_thread.rb.michael.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/name.rb lib/dnsruby.rb lib/Dnsruby/resource/TKEY.rb lib/Dnsruby/iana_ports.rb Dnsruby dot/m_56_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 484
484:     def self.each_address(name, &block)
485:       DefaultResolver.each_address(name, &block)
486:     end

Iterates over all hostnames of address

[Source]

     # File lib/dnsruby.rb, line 499
499:     def self.each_name(address, &proc)
500:       DefaultResolver.each_name(address, &proc)
501:     end

Looks up the first IP address for name

[Source]

     # File lib/dnsruby.rb, line 474
474:     def self.getaddress(name)
475:       DefaultResolver.getaddress(name)
476:     end

Looks up all IP addresses for name

[Source]

     # File lib/dnsruby.rb, line 479
479:     def self.getaddresses(name)
480:       DefaultResolver.getaddresses(name)
481:     end

Looks up the first hostname of address

[Source]

     # File lib/dnsruby.rb, line 489
489:     def self.getname(address)
490:       DefaultResolver.getname(address)
491:     end

Looks up all hostnames of address

[Source]

     # File lib/dnsruby.rb, line 494
494:     def self.getnames(address)
495:       DefaultResolver.getnames(address)
496:     end

Creates a new Resolv using resolvers

[Source]

     # File lib/dnsruby.rb, line 504
504:     def initialize(resolvers=[Hosts.new, DNS.new])
505:       @resolvers = resolvers
506:     end

Public Instance methods

Iterates over all IP addresses for name

[Source]

     # File lib/dnsruby.rb, line 522
522:     def each_address(name)
523:       if AddressRegex =~ name
524:         yield name
525:         return
526:       end
527:       yielded = false
528:       @resolvers.each {|r|
529:         r.each_address(name) {|address|
530:           yield address.to_s
531:           yielded = true
532:         }
533:         return if yielded
534:       }
535:     end

Iterates over all hostnames of address

[Source]

     # File lib/dnsruby.rb, line 551
551:     def each_name(address)
552:       yielded = false
553:       @resolvers.each {|r|
554:         r.each_name(address) {|name|
555:           yield name.to_s
556:           yielded = true
557:         }
558:         return if yielded
559:       }
560:     end

Looks up the first IP address for name

[Source]

     # File lib/dnsruby.rb, line 509
509:     def getaddress(name)
510:       each_address(name) {|address| return address}
511:       raise ResolvError.new("no address for #{name}")
512:     end

Looks up all IP addresses for name

[Source]

     # File lib/dnsruby.rb, line 515
515:     def getaddresses(name)
516:       ret = []
517:       each_address(name) {|address| ret << address}
518:       return ret
519:     end

Looks up the first hostname of address

[Source]

     # File lib/dnsruby.rb, line 538
538:     def getname(address)
539:       each_name(address) {|name| return name}
540:       raise ResolvError.new("no name for #{address}")
541:     end

Looks up all hostnames of address

[Source]

     # File lib/dnsruby.rb, line 544
544:     def getnames(address)
545:       ret = []
546:       each_name(address) {|name| ret << name}
547:       return ret
548:     end

[Validate]