Documentation
¶
Index ¶
- func LookupIP(host string) ([]string, error)
- func LookupSRV(service string) ([]*net.TCPAddr, error)
- func ResolveSRVHttp(uri string) string
- func SetConfig(newConfig ResolverConfig)
- func UpdateNameservers(nameservers []string)
- type CacheEntry
- type DNSRecord
- type DNSResolver
- func (r *DNSResolver) ClearCache()
- func (r *DNSResolver) LookupIP(host string) ([]string, error)
- func (r *DNSResolver) LookupSRV(service string) ([]*net.TCPAddr, error)
- func (r *DNSResolver) QueryUpstream(name string, recordType string) ([]DNSRecord, error)
- func (r *DNSResolver) ResolveSRVHttp(uri string) string
- func (r *DNSResolver) SetConfig(newConfig ResolverConfig)
- func (r *DNSResolver) Stop()
- func (r *DNSResolver) UpdateNameservers(nameservers []string)
- type DNSServer
- type DNSServerConfig
- type ResolverConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ResolveSRVHttp ¶
func SetConfig ¶
func SetConfig(newConfig ResolverConfig)
func UpdateNameservers ¶
func UpdateNameservers(nameservers []string)
Global convenience functions that use the default resolver
Types ¶
type CacheEntry ¶
type DNSRecord ¶
type DNSRecord struct {
Type string // "A", "AAAA", "CNAME", "MX", "SRV", "TXT"
Name string // fully qualified domain name (normalized)
Target string // IP for A/AAAA, FQDN for CNAME/MX/SRV, target for SRV, value for TXT
Port int // only for SRV records
Priority int // for SRV and MX records
Weight int // only for SRV records
TTL int // time to live
}
type DNSResolver ¶
type DNSResolver struct {
// contains filtered or unexported fields
}
func GetDefaultResolver ¶
func GetDefaultResolver() *DNSResolver
func NewDNSResolver ¶
func NewDNSResolver(config ResolverConfig) *DNSResolver
NewDNSResolver creates a new DNS resolver with the given nameservers
func (*DNSResolver) ClearCache ¶
func (r *DNSResolver) ClearCache()
ClearCache clears the upstream DNS cache
func (*DNSResolver) LookupSRV ¶
func (r *DNSResolver) LookupSRV(service string) ([]*net.TCPAddr, error)
Legacy functions for backward compatibility with existing SRV/IP lookup functionality
func (*DNSResolver) QueryUpstream ¶
func (r *DNSResolver) QueryUpstream(name string, recordType string) ([]DNSRecord, error)
QueryUpstream queries the upstream resolver for records using parallel DNS forwarding
func (*DNSResolver) ResolveSRVHttp ¶
func (r *DNSResolver) ResolveSRVHttp(uri string) string
func (*DNSResolver) SetConfig ¶
func (r *DNSResolver) SetConfig(newConfig ResolverConfig)
func (*DNSResolver) Stop ¶
func (r *DNSResolver) Stop()
Stop stops the resolver and cleans up resources
func (*DNSResolver) UpdateNameservers ¶
func (r *DNSResolver) UpdateNameservers(nameservers []string)
UpdateNameservers updates the resolver's nameservers Format:
nameserver -> default nameserver, port 53 nameserver:port -> default nameserver with custom port domain/nameserver -> domain-specific nameserver, port 53 domain/nameserver:port -> domain-specific nameserver with custom port
type DNSServer ¶
type DNSServer struct {
// contains filtered or unexported fields
}
func NewDNSServer ¶
func NewDNSServer(config DNSServerConfig) (*DNSServer, error)
NewDNSServer creates a new DNS server with the given configuration
func (*DNSServer) LookupRecords ¶
LookupRecords performs a DNS lookup, checking local records first, then upstream
func (*DNSServer) UpdateRecords ¶
UpdateRecords updates the DNS records and reparses them
type DNSServerConfig ¶
type DNSServerConfig struct {
ListenAddr string // Address to listen on (e.g., ":53", "127.0.0.1:5353")
Records []string // DNS records in BIND-style format
DefaultTTL int // Default TTL when not specified in records
Resolver *DNSResolver // Optional upstream resolver
}