rnet.dns
DNS resolution settings and custom nameservers.
rnet.dns
DNS resolution types and utilities.
LookupIpStrategy
Bases: Enum
IP lookup strategy for DNS resolution.
Determines the order and types of IP addresses to resolve.
Source code in rnet/dns.py
IPV4_AND_IPV6
class-attribute
instance-attribute
Resolve both IPv4 and IPv6 addresses.
IPV6_THEN_IPV4
class-attribute
instance-attribute
Prefer IPv6, fall back to IPv4.
ResolverOptions
DNS resolver options for customizing DNS resolution behavior.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lookup_ip_strategy
|
LookupIpStrategy
|
The IP lookup strategy to use. Defaults to IPV4_AND_IPV6. |
IPV4_AND_IPV6
|
Example
from rnet import ResolverOptions, LookupIpStrategy from ipaddress import IPv4Address options = ResolverOptions(LookupIpStrategy.Ipv4Only) options.add_resolve("example.com", [IPv4Address("127.0.0.1")])
Source code in rnet/dns.py
__init__
Create a new ResolverOptions with the given lookup IP strategy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lookup_ip_strategy
|
LookupIpStrategy
|
The IP lookup strategy to use. |
IPV4_AND_IPV6
|
add_resolve
Add a custom DNS resolve mapping.
Maps a domain name to a list of IP addresses, bypassing normal DNS resolution.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
domain
|
str
|
The domain name to map. |
required |
addrs
|
Sequence[IPv4Address | IPv6Address]
|
List of IP addresses to resolve the domain to. |
required |
Example
from ipaddress import IPv4Address, IPv6Address options = ResolverOptions() options.add_resolve("api.example.com", [IPv4Address("192.168.1.1")]) options.add_resolve("cdn.example.com", [ ... IPv6Address("2001:db8::1"), ... IPv4Address("203.0.113.1"), ... ])