class Resolv::DNS
Resolv::DNS is a DNS stub resolver.
Information taken from the following places:
-
STD0013
-
RFC 1035
-
etc.
Public Class Methods
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 165
def self.allocate_request_id: (String host, Integer port) -> Integer
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 167
def self.bind_random_port: (UDPSocket udpsock, ?String bind_host) -> void
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 169
def self.free_request_id: (String host, Integer port, Integer id) -> void
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 373
def initialize: (?String | Hash[Symbol, untyped] config_info) -> untyped
Creates a new DNS resolver.
config_info can be:
- nil
-
Uses /etc/resolv.conf.
String-
Path to a file using /etc/resolv.confβs format.
Hash-
Must contain :nameserver, :search and :ndots keys.
:nameserver_port can be used to specify port number of nameserver address. :raise_timeout_errors can be used to raise timeout errors as exceptions instead of treating the same as an NXDOMAIN response.
The value of :nameserver should be an address string or an array of address strings. * :nameserver => β8.8.8.8β * :nameserver => [β8.8.8.8β, β8.8.4.4β]
The value of :nameserver_port should be an array of pair of nameserver address and port number. * :nameserver_port => [[β8.8.8.8β, 53], [β8.8.4.4β, 53]]
Example:
Resolv::DNS.new(:nameserver => ['210.251.121.21'], :search => ['ruby-lang.org'], :ndots => 1)
(*untyped args) → instance
(*untyped args) { (instance) → void } → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 179
def self.open: (*untyped args) -> instance
| (*untyped args) { (instance) -> void } -> void
Creates a new DNS resolver. See Resolv::DNS.new for argument details.
Yields the created DNS resolver to the block, if given, otherwise returns it.
Public Instance Methods
() → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 190
def close: () -> untyped
Closes the DNS resolver.
(dns_name name) { (ip_address) → void } → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 201
def each_address: (dns_name name) { (ip_address) -> void } -> void
Iterates over all IP addresses for name retrieved from the DNS resolver.
name can be a Resolv::DNS::Name or a String. Retrieved addresses will be a Resolv::IPv4 or Resolv::IPv6
(ip_address | dns_name address) { (Resolv::DNS::Name) → void } → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 212
def each_name: (ip_address | dns_name address) { (Resolv::DNS::Name) -> void } -> void
Iterates over all hostnames for address retrieved from the DNS resolver.
address must be a Resolv::IPv4, Resolv::IPv6 or a String. Retrieved names will be Resolv::DNS::Name instances.
(dns_name name, singleton(Resolv::DNS::Query) typeclass) { (Resolv::DNS::Resource) → void } → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 221
def each_resource: (dns_name name, singleton(Resolv::DNS::Query) typeclass) { (Resolv::DNS::Resource) -> void } -> void
Iterates over all typeclass DNS resources for name. See getresource for argument details.
(Resolv::DNS::Message msg, dns_name name, singleton(Resolv::DNS::Query) typeclass) { (Resolv::DNS::Resource) → void } → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 223
def extract_resources: (Resolv::DNS::Message msg, dns_name name, singleton(Resolv::DNS::Query) typeclass) { (Resolv::DNS::Resource) -> void } -> void
(Resolv::DNS::Name name, singleton(Resolv::DNS::Query) typeclass) { (Resolv::DNS::Message, Resolv::DNS::Name) → void } → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 230
def fetch_resource: (Resolv::DNS::Name name, singleton(Resolv::DNS::Query) typeclass) { (Resolv::DNS::Message, Resolv::DNS::Name) -> void } -> void
(dns_name name) → ip_address
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 241
def getaddress: (dns_name name) -> ip_address
Gets the IP address of name from the DNS resolver.
name can be a Resolv::DNS::Name or a String. Retrieved address will be a Resolv::IPv4 or Resolv::IPv6
(dns_name name) → Array[ip_address]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 252
def getaddresses: (dns_name name) -> Array[ip_address]
Gets all IP addresses for name from the DNS resolver.
name can be a Resolv::DNS::Name or a String. Retrieved addresses will be a Resolv::IPv4 or Resolv::IPv6
(ip_address | dns_name address) → Resolv::DNS::Name
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 263
def getname: (ip_address | dns_name address) -> Resolv::DNS::Name
Gets the hostname for address from the DNS resolver.
address must be a Resolv::IPv4, Resolv::IPv6 or a String. Retrieved name will be a Resolv::DNS::Name.
(ip_address | dns_name address) → Array[Resolv::DNS::Name]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 274
def getnames: (ip_address | dns_name address) -> Array[Resolv::DNS::Name]
Gets all hostnames for address from the DNS resolver.
address must be a Resolv::IPv4, Resolv::IPv6 or a String. Retrieved names will be Resolv::DNS::Name instances.
(dns_name name, singleton(Resolv::DNS::Query) typeclass) → Resolv::DNS::Resource
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 302
def getresource: (dns_name name, singleton(Resolv::DNS::Query) typeclass) -> Resolv::DNS::Resource
Look up the typeclass DNS resource of name.
name must be a Resolv::DNS::Name or a String.
typeclass should be one of the following:
Returned resource is represented as a Resolv::DNS::Resource instance, i.e. Resolv::DNS::Resource::IN::A.
(dns_name name, singleton(Resolv::DNS::Query) typeclass) → Array[Resolv::DNS::Resource]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 311
def getresources: (dns_name name, singleton(Resolv::DNS::Query) typeclass) -> Array[Resolv::DNS::Resource]
Looks up all typeclass DNS resources for name. See getresource for argument details.
() → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 313
def lazy_initialize: () -> untyped
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 315
def make_tcp_requester: (String host, Integer port) -> Requester::TCP
() → (Requester::ConnectedUDP | Requester::UnconnectedUDP)
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 317
def make_udp_requester: () -> (Requester::ConnectedUDP | Requester::UnconnectedUDP)
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 333
def timeouts=: (Integer | Float | Array[Integer | Float] values) -> void
Sets the resolver timeouts. This may be a single positive number or an array of positive numbers representing timeouts in seconds. If an array is specified, a DNS request will retry and wait for each successive interval in the array until a successful response is received. Specifying nil reverts to the default timeouts: 5, second = 5 * 2 / nameserver_count, 2 * second, 4 * second : Example:
dns.timeouts = 3
() → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/resolv/0/resolv.rbs, line 375
def use_ipv6?: () -> untyped