15 DNS: Domain Name Service Queries
15.1 Functions
procedure
(dns-get-address nameserver address [ #:ipv6? ipv6?]) → string? nameserver : string? address : string? ipv6? : any/c = #f
The query record sent to the DNS server includes the "recursive" bit, but dns-get-address also implements a recursive search itself in case the server does not provide this optional feature.
If ipv6? is a true value, then the numerical address that is returned will be an IPv6 address. If no AAAA record exists, an error will be raised.
procedure
(dns-get-srv nameserver name service [proto]) → (listof srv-rr?)
nameserver : string? name : string? service : string? proto : string? = "tcp"
struct
(struct srv-rr (priority weight port target) #:prefab) priority : (integer-in 0 65535) weight : (integer-in 0 65535) port : (integer-in 0 65535) target : string?
An SRV record is a particular kind of DNS resource record that maps an abstract service name onto a hostname and port combination. For more information, see the Wikipedia page on SRV records.
Consults the specified nameserver (normally a numerical address like "128.42.1.30") to retrieve the SRV records corresponding to the given name, service, and protocol. Returns a list of srv-rr structs if any corresponding SRV records are found; otherwise, returns '().
If service is "X", proto is "Y", and name is "example.com", then this will retrieve any SRV records at the domain name _X._Y.example.com.
The query record sent to the DNS server includes the "recursive" bit, but dns-get-srv also implements a recursive search itself in case the server does not provide this optional feature.
> (dns-get-srv (dns-find-nameserver) "racket-lang.org" "xmpp-client") '(#s(srv-rr 0 0 5222 "xmpp.racket-lang.org"))
> (dns-get-srv (dns-find-nameserver) "racket-lang.org" "nonexistent-protocol") '()
> (dns-get-srv (dns-find-nameserver) "racket-lang.org" "xmpp-client" "tcp") '(#s(srv-rr 0 0 5222 "xmpp.racket-lang.org"))
> (dns-get-srv (dns-find-nameserver) "racket-lang.org" "xmpp-client" "udp") '()
Added in version 6.4.0.8 of package net-lib.
procedure
(dns-get-name nameserver address) → string?
nameserver : string? address : string?
procedure
(dns-get-mail-exchanger nameserver address) → string?
nameserver : string? address : string?
procedure
(dns-find-nameserver) → (or/c string? #f)
15.2 DNS Unit
dns@ and dns^ are deprecated. They exist for backward-compatibility and will likely be removed in the future. New code should use the net/dns module.
(require net/dns-unit) | package: compatibility-lib |
15.3 DNS Signature
(require net/dns-sig) | package: compatibility-lib |
signature
dns^ : signature
Includes dns-get-address, dns-get-name, dns-get-mail-exchanger and dns-find-nameserver.