|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| dnsutil/ | H | 29-Sep-2018 | - | 215 | 157 |
| vendor/golang.org/x/ | H | 29-Sep-2018 | - | 221,092 | 187,410 |
| .codecov.yml | H A D | 29-Sep-2018 | 128 | 9 | 8 |
| .gitignore | H A D | 29-Sep-2018 | 24 | 5 | 4 |
| .travis.yml | H A D | 29-Sep-2018 | 427 | 22 | 17 |
| AUTHORS | H A D | 29-Sep-2018 | 27 | 2 | 1 |
| CONTRIBUTORS | H A D | 29-Sep-2018 | 150 | 11 | 10 |
| COPYRIGHT | H A D | 29-Sep-2018 | 512 | 10 | 7 |
| Gopkg.lock | H A D | 29-Sep-2018 | 946 | 34 | 27 |
| Gopkg.toml | H A D | 29-Sep-2018 | 602 | 27 | 23 |
| LICENSE | H A D | 29-Sep-2018 | 1.6 KiB | 33 | 26 |
| Makefile.fuzz | H A D | 29-Sep-2018 | 671 | 34 | 17 |
| Makefile.release | H A D | 29-Sep-2018 | 992 | 53 | 31 |
| README.md | H A D | 29-Sep-2018 | 5.5 KiB | 172 | 146 |
| client.go | H A D | 29-Sep-2018 | 15.6 KiB | 578 | 427 |
| client_test.go | H A D | 29-Sep-2018 | 14.4 KiB | 611 | 492 |
| clientconfig.go | H A D | 29-Sep-2018 | 3.4 KiB | 140 | 109 |
| clientconfig_test.go | H A D | 29-Sep-2018 | 4.6 KiB | 182 | 160 |
| compress_generate.go | H A D | 29-Sep-2018 | 5.3 KiB | 199 | 155 |
| dane.go | H A D | 29-Sep-2018 | 997 | 44 | 40 |
| defaults.go | H A D | 29-Sep-2018 | 8.3 KiB | 289 | 197 |
| dns.go | H A D | 29-Sep-2018 | 2.3 KiB | 98 | 65 |
| dns_bench_test.go | H A D | 29-Sep-2018 | 5.6 KiB | 231 | 206 |
| dns_test.go | H A D | 29-Sep-2018 | 10 KiB | 317 | 268 |
| dnssec.go | H A D | 29-Sep-2018 | 19.6 KiB | 802 | 637 |
| dnssec_keygen.go | H A D | 29-Sep-2018 | 4.2 KiB | 179 | 151 |
| dnssec_keyscan.go | H A D | 29-Sep-2018 | 6.2 KiB | 285 | 247 |
| dnssec_privkey.go | H A D | 29-Sep-2018 | 2.9 KiB | 94 | 76 |
| dnssec_test.go | H A D | 29-Sep-2018 | 28.3 KiB | 849 | 739 |
| doc.go | H A D | 29-Sep-2018 | 9.8 KiB | 273 | 1 |
| duplicate.go | H A D | 29-Sep-2018 | 741 | 26 | 14 |
| duplicate_generate.go | H A D | 29-Sep-2018 | 3.8 KiB | 159 | 116 |
| duplicate_test.go | H A D | 29-Sep-2018 | 1.9 KiB | 62 | 50 |
| dyn_test.go | H A D | 29-Sep-2018 | 37 | 4 | 1 |
| edns.go | H A D | 29-Sep-2018 | 18.4 KiB | 631 | 446 |
| edns_test.go | H A D | 29-Sep-2018 | 1.6 KiB | 69 | 45 |
| example_test.go | H A D | 29-Sep-2018 | 3.1 KiB | 147 | 115 |
| format.go | H A D | 29-Sep-2018 | 2.3 KiB | 88 | 77 |
| fuzz.go | H A D | 29-Sep-2018 | 307 | 24 | 17 |
| generate.go | H A D | 29-Sep-2018 | 4 KiB | 170 | 141 |
| generate_test.go | H A D | 29-Sep-2018 | 1.1 KiB | 40 | 37 |
| issue_test.go | H A D | 29-Sep-2018 | 1.5 KiB | 63 | 55 |
| labels.go | H A D | 29-Sep-2018 | 4 KiB | 192 | 140 |
| labels_test.go | H A D | 29-Sep-2018 | 4.5 KiB | 202 | 183 |
| leak_test.go | H A D | 29-Sep-2018 | 1.9 KiB | 73 | 62 |
| length_test.go | H A D | 29-Sep-2018 | 16.5 KiB | 372 | 317 |
| listen_go111.go | H A D | 29-Sep-2018 | 881 | 45 | 32 |
| listen_go_not111.go | H A D | 29-Sep-2018 | 485 | 24 | 13 |
| msg.go | H A D | 29-Sep-2018 | 30.9 KiB | 1,172 | 918 |
| msg_generate.go | H A D | 29-Sep-2018 | 10.1 KiB | 349 | 301 |
| msg_helpers.go | H A D | 29-Sep-2018 | 16.7 KiB | 641 | 557 |
| msg_helpers_test.go | H A D | 29-Sep-2018 | 3.4 KiB | 139 | 126 |
| msg_test.go | H A D | 29-Sep-2018 | 4.6 KiB | 144 | 125 |
| nsecx.go | H A D | 29-Sep-2018 | 2.5 KiB | 107 | 93 |
| nsecx_test.go | H A D | 29-Sep-2018 | 4.1 KiB | 142 | 132 |
| parse_test.go | H A D | 29-Sep-2018 | 49.7 KiB | 1,466 | 1,335 |
| privaterr.go | H A D | 29-Sep-2018 | 4 KiB | 148 | 106 |
| privaterr_test.go | H A D | 29-Sep-2018 | 3.5 KiB | 167 | 134 |
| rawmsg.go | H A D | 29-Sep-2018 | 1.1 KiB | 50 | 36 |
| remote_test.go | H A D | 29-Sep-2018 | 385 | 20 | 15 |
| reverse.go | H A D | 29-Sep-2018 | 897 | 39 | 26 |
| rr_test.go | H A D | 29-Sep-2018 | 136 | 8 | 5 |
| sanitize.go | H A D | 29-Sep-2018 | 2 KiB | 86 | 59 |
| sanitize_test.go | H A D | 29-Sep-2018 | 2 KiB | 76 | 70 |
| scan.go | H A D | 29-Sep-2018 | 23.6 KiB | 1,005 | 858 |
| scan_rr.go | H A D | 29-Sep-2018 | 48.6 KiB | 2,204 | 1,885 |
| scan_test.go | H A D | 29-Sep-2018 | 2.4 KiB | 92 | 79 |
| scanner.go | H A D | 29-Sep-2018 | 1,022 | 57 | 44 |
| serve_mux.go | H A D | 29-Sep-2018 | 3.8 KiB | 148 | 89 |
| serve_mux_test.go | H A D | 29-Sep-2018 | 1.6 KiB | 73 | 59 |
| server.go | H A D | 29-Sep-2018 | 19.8 KiB | 807 | 593 |
| server_test.go | H A D | 29-Sep-2018 | 27.1 KiB | 1,096 | 902 |
| sig0.go | H A D | 29-Sep-2018 | 4.9 KiB | 218 | 186 |
| sig0_test.go | H A D | 29-Sep-2018 | 2.2 KiB | 90 | 87 |
| singleinflight.go | H A D | 29-Sep-2018 | 1.4 KiB | 58 | 36 |
| smimea.go | H A D | 29-Sep-2018 | 1.4 KiB | 48 | 32 |
| tlsa.go | H A D | 29-Sep-2018 | 1.1 KiB | 48 | 37 |
| tsig.go | H A D | 29-Sep-2018 | 9.3 KiB | 387 | 313 |
| tsig_test.go | H A D | 29-Sep-2018 | 1.2 KiB | 53 | 44 |
| types.go | H A D | 29-Sep-2018 | 31.6 KiB | 1,382 | 1,123 |
| types_generate.go | H A D | 29-Sep-2018 | 6.9 KiB | 273 | 215 |
| types_test.go | H A D | 29-Sep-2018 | 1.1 KiB | 75 | 60 |
| udp.go | H A D | 29-Sep-2018 | 2.9 KiB | 103 | 67 |
| udp_test.go | H A D | 29-Sep-2018 | 4.4 KiB | 146 | 115 |
| udp_windows.go | H A D | 29-Sep-2018 | 1.2 KiB | 38 | 20 |
| update.go | H A D | 29-Sep-2018 | 3.1 KiB | 107 | 83 |
| update_test.go | H A D | 29-Sep-2018 | 4.3 KiB | 140 | 110 |
| version.go | H A D | 29-Sep-2018 | 275 | 16 | 9 |
| version_test.go | H A D | 29-Sep-2018 | 180 | 11 | 8 |
| xfr.go | H A D | 29-Sep-2018 | 6.4 KiB | 261 | 207 |
| zcompress.go | H A D | 29-Sep-2018 | 5 KiB | 153 | 148 |
| zduplicate.go | H A D | 29-Sep-2018 | 17.3 KiB | 944 | 875 |
| zmsg.go | H A D | 29-Sep-2018 | 76.1 KiB | 3,616 | 3,396 |
| ztypes.go | H A D | 29-Sep-2018 | 22.9 KiB | 864 | 851 |
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 widely used Resource Records are supported, including the
11DNSSEC types. It follows a lean and mean philosophy. If there is stuff you should know as a DNS
12programmer there isn't a convenience function for it. Server side and client side programming is
13supported, i.e. you can 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://cloudflare.com
30* https://github.com/abh/geodns
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://pulse.turbobytes.com/
45* https://play.google.com/store/apps/details?id=com.turbobytes.dig
46* https://github.com/fcambus/statzone
47* https://github.com/benschw/dns-clb-go
48* https://github.com/corny/dnscheck for http://public-dns.info/
49* https://namesmith.io
50* https://github.com/miekg/unbound
51* https://github.com/miekg/exdns
52* https://dnslookup.org
53* https://github.com/looterz/grimd
54* https://github.com/phamhongviet/serf-dns
55* https://github.com/mehrdadrad/mylg
56* https://github.com/bamarni/dockness
57* https://github.com/fffaraz/microdns
58* http://kelda.io
59* https://github.com/ipdcode/hades (JD.COM)
60* https://github.com/StackExchange/dnscontrol/
61* https://www.dnsperf.com/
62* https://dnssectest.net/
63* https://dns.apebits.com
64* https://github.com/oif/apex
65* https://github.com/jedisct1/dnscrypt-proxy
66* https://github.com/jedisct1/rpdns
67* https://github.com/xor-gate/sshfp
68* https://github.com/rs/dnstrace
69* https://blitiri.com.ar/p/dnss ([github mirror](https://github.com/albertito/dnss))
70
71Send pull request if you want to be listed here.
72
73# Features
74
75* UDP/TCP queries, IPv4 and IPv6;
76* RFC 1035 zone file parsing ($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) are supported;
77* Fast:
78 * Reply speed around ~ 80K qps (faster hardware results in more qps);
79 * Parsing RRs ~ 100K RR/s, that's 5M records in about 50 seconds;
80* Server side programming (mimicking the net/http package);
81* Client side programming;
82* DNSSEC: signing, validating and key generation for DSA, RSA, ECDSA and Ed25519;
83* EDNS0, NSID, Cookies;
84* AXFR/IXFR;
85* TSIG, SIG(0);
86* DNS over TLS: optional encrypted connection between client and server;
87* DNS name compression;
88* Depends only on the standard library.
89
90Have fun!
91
92Miek Gieben - 2010-2012 - <miek@miek.nl>
93
94# Building
95
96Building is done with the `go` tool. If you have setup your GOPATH correctly, the following should
97work:
98
99 go get github.com/miekg/dns
100 go build github.com/miekg/dns
101
102## Examples
103
104A short "how to use the API" is at the beginning of doc.go (this also will show
105when you call `godoc github.com/miekg/dns`).
106
107Example programs can be found in the `github.com/miekg/exdns` repository.
108
109## Supported RFCs
110
111*all of them*
112
113* 103{4,5} - DNS standard
114* 1348 - NSAP record (removed the record)
115* 1982 - Serial Arithmetic
116* 1876 - LOC record
117* 1995 - IXFR
118* 1996 - DNS notify
119* 2136 - DNS Update (dynamic updates)
120* 2181 - RRset definition - there is no RRset type though, just []RR
121* 2537 - RSAMD5 DNS keys
122* 2065 - DNSSEC (updated in later RFCs)
123* 2671 - EDNS record
124* 2782 - SRV record
125* 2845 - TSIG record
126* 2915 - NAPTR record
127* 2929 - DNS IANA Considerations
128* 3110 - RSASHA1 DNS keys
129* 3225 - DO bit (DNSSEC OK)
130* 340{1,2,3} - NAPTR record
131* 3445 - Limiting the scope of (DNS)KEY
132* 3597 - Unknown RRs
133* 403{3,4,5} - DNSSEC + validation functions
134* 4255 - SSHFP record
135* 4343 - Case insensitivity
136* 4408 - SPF record
137* 4509 - SHA256 Hash in DS
138* 4592 - Wildcards in the DNS
139* 4635 - HMAC SHA TSIG
140* 4701 - DHCID
141* 4892 - id.server
142* 5001 - NSID
143* 5155 - NSEC3 record
144* 5205 - HIP record
145* 5702 - SHA2 in the DNS
146* 5936 - AXFR
147* 5966 - TCP implementation recommendations
148* 6605 - ECDSA
149* 6725 - IANA Registry Update
150* 6742 - ILNP DNS
151* 6840 - Clarifications and Implementation Notes for DNS Security
152* 6844 - CAA record
153* 6891 - EDNS0 update
154* 6895 - DNS IANA considerations
155* 6975 - Algorithm Understanding in DNSSEC
156* 7043 - EUI48/EUI64 records
157* 7314 - DNS (EDNS) EXPIRE Option
158* 7477 - CSYNC RR
159* 7828 - edns-tcp-keepalive EDNS0 Option
160* 7553 - URI record
161* 7858 - DNS over TLS: Initiation and Performance Considerations
162* 7871 - EDNS0 Client Subnet
163* 7873 - Domain Name System (DNS) Cookies (draft-ietf-dnsop-cookies)
164* 8080 - EdDSA for DNSSEC
165
166## Loosely based upon
167
168* `ldns`
169* `NSD`
170* `Net::DNS`
171* `GRONG`
172