|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 24-Mar-2022 | - |
| .codecov.yml | H A D | 24-Mar-2022 | 128 | 9 | 8 |
| .gitignore | H A D | 24-Mar-2022 | 24 | 5 | 4 |
| AUTHORS | H A D | 24-Mar-2022 | 27 | 2 | 1 |
| CODEOWNERS | H A D | 24-Mar-2022 | 18 | 2 | 1 |
| CONTRIBUTORS | H A D | 24-Mar-2022 | 150 | 11 | 10 |
| COPYRIGHT | H A D | 24-Mar-2022 | 512 | 10 | 7 |
| LICENSE | H A D | 24-Mar-2022 | 1.6 KiB | 31 | 26 |
| Makefile.fuzz | H A D | 24-Mar-2022 | 671 | 34 | 17 |
| Makefile.release | H A D | 24-Mar-2022 | 992 | 53 | 31 |
| README.md | H A D | 24-Mar-2022 | 6 KiB | 187 | 160 |
| acceptfunc.go | H A D | 24-Mar-2022 | 1.9 KiB | 63 | 32 |
| client.go | H A D | 24-Mar-2022 | 15 KiB | 485 | 328 |
| clientconfig.go | H A D | 24-Mar-2022 | 3.3 KiB | 136 | 105 |
| dane.go | H A D | 24-Mar-2022 | 997 | 44 | 40 |
| defaults.go | H A D | 24-Mar-2022 | 10.3 KiB | 382 | 258 |
| dns.go | H A D | 24-Mar-2022 | 4.3 KiB | 159 | 92 |
| dnssec.go | H A D | 24-Mar-2022 | 18.7 KiB | 766 | 612 |
| dnssec_keygen.go | H A D | 24-Mar-2022 | 3.1 KiB | 140 | 118 |
| dnssec_keyscan.go | H A D | 24-Mar-2022 | 6.2 KiB | 310 | 240 |
| dnssec_privkey.go | H A D | 24-Mar-2022 | 2.3 KiB | 78 | 61 |
| doc.go | H A D | 24-Mar-2022 | 10.5 KiB | 293 | 1 |
| duplicate.go | H A D | 24-Mar-2022 | 953 | 38 | 24 |
| edns.go | H A D | 24-Mar-2022 | 25 KiB | 840 | 613 |
| format.go | H A D | 24-Mar-2022 | 2.4 KiB | 94 | 83 |
| fuzz.go | H A D | 24-Mar-2022 | 536 | 33 | 22 |
| generate.go | H A D | 24-Mar-2022 | 5 KiB | 248 | 182 |
| labels.go | H A D | 24-Mar-2022 | 4.1 KiB | 213 | 154 |
| listen_no_reuseport.go | H A D | 24-Mar-2022 | 485 | 24 | 13 |
| listen_reuseport.go | H A D | 24-Mar-2022 | 881 | 45 | 32 |
| msg.go | H A D | 24-Mar-2022 | 32.1 KiB | 1,203 | 901 |
| msg_helpers.go | H A D | 24-Mar-2022 | 20.9 KiB | 803 | 692 |
| msg_truncate.go | H A D | 24-Mar-2022 | 3.4 KiB | 118 | 59 |
| nsecx.go | H A D | 24-Mar-2022 | 2.4 KiB | 96 | 78 |
| privaterr.go | H A D | 24-Mar-2022 | 3.2 KiB | 114 | 75 |
| reverse.go | H A D | 24-Mar-2022 | 1.3 KiB | 53 | 32 |
| sanitize.go | H A D | 24-Mar-2022 | 2 KiB | 87 | 60 |
| scan.go | H A D | 24-Mar-2022 | 29.3 KiB | 1,369 | 983 |
| scan_rr.go | H A D | 24-Mar-2022 | 40.7 KiB | 1,779 | 1,565 |
| serve_mux.go | H A D | 24-Mar-2022 | 3.4 KiB | 123 | 71 |
| server.go | H A D | 24-Mar-2022 | 21.7 KiB | 837 | 604 |
| sig0.go | H A D | 24-Mar-2022 | 4.6 KiB | 198 | 165 |
| singleinflight.go | H A D | 24-Mar-2022 | 1.6 KiB | 62 | 39 |
| smimea.go | H A D | 24-Mar-2022 | 1.3 KiB | 45 | 29 |
| svcb.go | H A D | 24-Mar-2022 | 20.1 KiB | 756 | 569 |
| tlsa.go | H A D | 24-Mar-2022 | 1.1 KiB | 45 | 34 |
| tools.go | H A D | 24-Mar-2022 | 326 | 10 | 2 |
| tsig.go | H A D | 24-Mar-2022 | 11.6 KiB | 457 | 362 |
| types.go | H A D | 24-Mar-2022 | 36 KiB | 1,560 | 1,219 |
| udp.go | H A D | 24-Mar-2022 | 2.9 KiB | 103 | 67 |
| udp_windows.go | H A D | 24-Mar-2022 | 1.2 KiB | 36 | 18 |
| update.go | H A D | 24-Mar-2022 | 3.1 KiB | 113 | 89 |
| version.go | H A D | 24-Mar-2022 | 275 | 16 | 9 |
| xfr.go | H A D | 24-Mar-2022 | 6.8 KiB | 272 | 209 |
| zduplicate.go | H A D | 24-Mar-2022 | 20.2 KiB | 1,341 | 1,262 |
| zmsg.go | H A D | 24-Mar-2022 | 59.7 KiB | 2,876 | 2,642 |
| ztypes.go | H A D | 24-Mar-2022 | 29.5 KiB | 953 | 940 |
README.md
1[![Build Status](https://travis-ci.org/miekg/dns.svg?branch=master)](https://travis-ci.org/miekg/dns)
2[![Code Coverage](https://img.shields.io/codecov/c/github/miekg/dns/master.svg)](https://codecov.io/github/miekg/dns?branch=master)
3[![Go Report Card](https://goreportcard.com/badge/github.com/miekg/dns)](https://goreportcard.com/report/miekg/dns)
4[![](https://godoc.org/github.com/miekg/dns?status.svg)](https://godoc.org/github.com/miekg/dns)
5
6# Alternative (more granular) approach to a DNS library
7
8> Less is more.
9
10Complete and usable DNS library. All Resource Records are supported, including the DNSSEC types.
11It follows a lean and mean philosophy. If there is stuff you should know as a DNS programmer there
12isn't a convenience function for it. Server side and client side programming is supported, i.e. you
13can build servers and resolvers with it.
14
15We try to keep the "master" branch as sane as possible and at the bleeding edge of standards,
16avoiding breaking changes wherever reasonable. We support the last two versions of Go.
17
18# Goals
19
20* KISS;
21* Fast;
22* Small API. If it's easy to code in Go, don't make a function for it.
23
24# Users
25
26A not-so-up-to-date-list-that-may-be-actually-current:
27
28* https://github.com/coredns/coredns
29* https://github.com/abh/geodns
30* https://github.com/baidu/bfe
31* http://www.statdns.com/
32* http://www.dnsinspect.com/
33* https://github.com/chuangbo/jianbing-dictionary-dns
34* http://www.dns-lg.com/
35* https://github.com/fcambus/rrda
36* https://github.com/kenshinx/godns
37* https://github.com/skynetservices/skydns
38* https://github.com/hashicorp/consul
39* https://github.com/DevelopersPL/godnsagent
40* https://github.com/duedil-ltd/discodns
41* https://github.com/StalkR/dns-reverse-proxy
42* https://github.com/tianon/rawdns
43* https://mesosphere.github.io/mesos-dns/
44* https://github.com/fcambus/statzone
45* https://github.com/benschw/dns-clb-go
46* https://github.com/corny/dnscheck for <http://public-dns.info/>
47* https://github.com/miekg/unbound
48* https://github.com/miekg/exdns
49* https://dnslookup.org
50* https://github.com/looterz/grimd
51* https://github.com/phamhongviet/serf-dns
52* https://github.com/mehrdadrad/mylg
53* https://github.com/bamarni/dockness
54* https://github.com/fffaraz/microdns
55* https://github.com/ipdcode/hades <https://jd.com>
56* https://github.com/StackExchange/dnscontrol/
57* https://www.dnsperf.com/
58* https://dnssectest.net/
59* https://github.com/oif/apex
60* https://github.com/jedisct1/dnscrypt-proxy
61* https://github.com/jedisct1/rpdns
62* https://github.com/xor-gate/sshfp
63* https://github.com/rs/dnstrace
64* https://blitiri.com.ar/p/dnss ([github mirror](https://github.com/albertito/dnss))
65* https://render.com
66* https://github.com/peterzen/goresolver
67* https://github.com/folbricht/routedns
68* https://domainr.com/
69* https://zonedb.org/
70* https://router7.org/
71* https://github.com/fortio/dnsping
72* https://github.com/Luzilla/dnsbl_exporter
73* https://github.com/bodgit/tsig
74* https://github.com/v2fly/v2ray-core (test only)
75* https://kuma.io/
76* https://www.misaka.io/services/dns
77* https://ping.sx/dig
78* https://fleetdeck.io/
79* https://github.com/markdingo/autoreverse
80
81
82Send pull request if you want to be listed here.
83
84# Features
85
86* UDP/TCP queries, IPv4 and IPv6
87* RFC 1035 zone file parsing ($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) are supported
88* Fast
89* Server side programming (mimicking the net/http package)
90* Client side programming
91* DNSSEC: signing, validating and key generation for DSA, RSA, ECDSA and Ed25519
92* EDNS0, NSID, Cookies
93* AXFR/IXFR
94* TSIG, SIG(0)
95* DNS over TLS (DoT): encrypted connection between client and server over TCP
96* DNS name compression
97
98Have fun!
99
100Miek Gieben - 2010-2012 - <miek@miek.nl>
101DNS Authors 2012-
102
103# Building
104
105This library uses Go modules and uses semantic versioning. Building is done with the `go` tool, so
106the following should work:
107
108 go get github.com/miekg/dns
109 go build github.com/miekg/dns
110
111## Examples
112
113A short "how to use the API" is at the beginning of doc.go (this also will show when you call `godoc
114github.com/miekg/dns`).
115
116Example programs can be found in the `github.com/miekg/exdns` repository.
117
118## Supported RFCs
119
120*all of them*
121
122* 103{4,5} - DNS standard
123* 1348 - NSAP record (removed the record)
124* 1982 - Serial Arithmetic
125* 1876 - LOC record
126* 1995 - IXFR
127* 1996 - DNS notify
128* 2136 - DNS Update (dynamic updates)
129* 2181 - RRset definition - there is no RRset type though, just []RR
130* 2537 - RSAMD5 DNS keys
131* 2065 - DNSSEC (updated in later RFCs)
132* 2671 - EDNS record
133* 2782 - SRV record
134* 2845 - TSIG record
135* 2915 - NAPTR record
136* 2929 - DNS IANA Considerations
137* 3110 - RSASHA1 DNS keys
138* 3123 - APL record
139* 3225 - DO bit (DNSSEC OK)
140* 340{1,2,3} - NAPTR record
141* 3445 - Limiting the scope of (DNS)KEY
142* 3597 - Unknown RRs
143* 403{3,4,5} - DNSSEC + validation functions
144* 4255 - SSHFP record
145* 4343 - Case insensitivity
146* 4408 - SPF record
147* 4509 - SHA256 Hash in DS
148* 4592 - Wildcards in the DNS
149* 4635 - HMAC SHA TSIG
150* 4701 - DHCID
151* 4892 - id.server
152* 5001 - NSID
153* 5155 - NSEC3 record
154* 5205 - HIP record
155* 5702 - SHA2 in the DNS
156* 5936 - AXFR
157* 5966 - TCP implementation recommendations
158* 6605 - ECDSA
159* 6725 - IANA Registry Update
160* 6742 - ILNP DNS
161* 6840 - Clarifications and Implementation Notes for DNS Security
162* 6844 - CAA record
163* 6891 - EDNS0 update
164* 6895 - DNS IANA considerations
165* 6944 - DNSSEC DNSKEY Algorithm Status
166* 6975 - Algorithm Understanding in DNSSEC
167* 7043 - EUI48/EUI64 records
168* 7314 - DNS (EDNS) EXPIRE Option
169* 7477 - CSYNC RR
170* 7828 - edns-tcp-keepalive EDNS0 Option
171* 7553 - URI record
172* 7858 - DNS over TLS: Initiation and Performance Considerations
173* 7871 - EDNS0 Client Subnet
174* 7873 - Domain Name System (DNS) Cookies
175* 8080 - EdDSA for DNSSEC
176* 8499 - DNS Terminology
177* 8659 - DNS Certification Authority Authorization (CAA) Resource Record
178* 8914 - Extended DNS Errors
179* 8976 - Message Digest for DNS Zones (ZONEMD RR)
180
181## Loosely Based Upon
182
183* ldns - <https://nlnetlabs.nl/projects/ldns/about/>
184* NSD - <https://nlnetlabs.nl/projects/nsd/about/>
185* Net::DNS - <http://www.net-dns.org/>
186* GRONG - <https://github.com/bortzmeyer/grong>
187