mirror of
https://github.com/SamTherapy/dnscrypt.git
synced 2024-12-22 17:00:43 +00:00
30 lines
1.1 KiB
Go
30 lines
1.1 KiB
Go
/*
|
|
Package dnscrypt implements a very simple DNSCrypt client library.
|
|
|
|
The idea is to let others use DNSCrypt resolvers in the same manner as we can use regular and DoT resolvers with miekg's DNS library.
|
|
|
|
Here is a simple usage example:
|
|
|
|
// AdGuard DNS stamp
|
|
stampStr := "sdns://AQIAAAAAAAAAFDE3Ni4xMDMuMTMwLjEzMDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20"
|
|
|
|
// Initializing the DNSCrypt client
|
|
c := dnscrypt.Client{Proto: "udp", Timeout: 10 * time.Second}
|
|
|
|
// Fetching and validating the server certificate
|
|
serverInfo, rtt, err := client.Dial(stampStr)
|
|
|
|
// Create a DNS request
|
|
req := dns.Msg{}
|
|
req.Id = dns.Id()
|
|
req.RecursionDesired = true
|
|
req.Question = []dns.Question{
|
|
{Name: "google-public-dns-a.google.com.", Qtype: dns.TypeA, Qclass: dns.ClassINET},
|
|
}
|
|
|
|
// Get the DNS response
|
|
reply, rtt, err := client.Exchange(&req, serverInfo)
|
|
|
|
Unfortunately, I have not found an easy way to use dnscrypt-proxy as a dependency so here's why this library was created.
|
|
*/
|
|
package dnscrypt
|