• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/workflows/H07-May-2021-8872

dnsutil/H07-May-2021-215157

.codecov.ymlH A D07-May-2021128 98

.gitignoreH A D07-May-202124 54

AUTHORSH A D07-May-202127 21

CODEOWNERSH A D07-May-202118 21

CONTRIBUTORSH A D07-May-2021150 1110

COPYRIGHTH A D07-May-2021512 107

LICENSEH A D07-May-20211.6 KiB3126

Makefile.fuzzH A D07-May-2021671 3417

Makefile.releaseH A D07-May-2021992 5331

README.mdH A D07-May-20215.9 KiB183156

acceptfunc.goH A D07-May-20211.8 KiB6232

acceptfunc_test.goH A D07-May-2021859 3629

client.goH A D07-May-202113.9 KiB450315

client_test.goH A D07-May-202116.2 KiB678546

clientconfig.goH A D07-May-20213.3 KiB136105

clientconfig_test.goH A D07-May-20214.6 KiB182160

dane.goH A D07-May-2021997 4440

defaults.goH A D07-May-202110.3 KiB382258

dns.goH A D07-May-20214.3 KiB15992

dns_bench_test.goH A D07-May-20219.4 KiB371337

dns_test.goH A D07-May-20219.9 KiB317268

dnssec.goH A D07-May-202118.7 KiB766612

dnssec_keygen.goH A D07-May-20213.1 KiB140118

dnssec_keyscan.goH A D07-May-20216.2 KiB310240

dnssec_privkey.goH A D07-May-20212.3 KiB7861

dnssec_test.goH A D07-May-202128.6 KiB858748

doc.goH A D07-May-202110.5 KiB2931

duplicate.goH A D07-May-2021953 3824

duplicate_generate.goH A D07-May-20213.9 KiB174128

duplicate_test.goH A D07-May-20213.8 KiB11890

dyn_test.goH A D07-May-202137 41

edns.goH A D07-May-202123.8 KiB787575

edns_test.goH A D07-May-20213.6 KiB161127

example_test.goH A D07-May-20213.1 KiB147115

format.goH A D07-May-20212.4 KiB9483

format_test.goH A D07-May-2021279 1714

fuzz.goH A D07-May-2021536 3322

fuzz_test.goH A D07-May-20217.5 KiB270234

generate.goH A D07-May-20215 KiB248182

generate_test.goH A D07-May-20216.9 KiB236207

go.modH A D07-May-2021210 107

go.sumH A D07-May-20211 KiB1110

issue_test.goH A D07-May-20211.2 KiB4539

labels.goH A D07-May-20214.1 KiB213154

labels_test.goH A D07-May-20217.9 KiB337309

leak_test.goH A D07-May-20211.8 KiB7261

length_test.goH A D07-May-202120.5 KiB518437

listen_no_reuseport.goH A D07-May-2021485 2413

listen_reuseport.goH A D07-May-2021881 4532

msg.goH A D07-May-202132 KiB1,198897

msg_generate.goH A D07-May-202110.2 KiB351302

msg_helpers.goH A D07-May-202121.6 KiB836726

msg_helpers_test.goH A D07-May-202111.9 KiB525499

msg_test.goH A D07-May-20219.1 KiB327277

msg_truncate.goH A D07-May-20213.4 KiB11859

msg_truncate_test.goH A D07-May-20215 KiB188155

nsecx.goH A D07-May-20212.4 KiB9678

nsecx_test.goH A D07-May-20214.8 KiB171160

parse_test.goH A D07-May-202165.9 KiB1,9971,823

privaterr.goH A D07-May-20213.2 KiB11475

privaterr_test.goH A D07-May-20213.5 KiB169135

reverse.goH A D07-May-20211.3 KiB5332

rr_test.goH A D07-May-2021191 128

sanitize.goH A D07-May-20212 KiB8760

sanitize_test.goH A D07-May-20212 KiB7670

scan.goH A D07-May-202129.3 KiB1,369983

scan_rr.goH A D07-May-202140.6 KiB1,7751,561

scan_test.goH A D07-May-20218.9 KiB348284

serve_mux.goH A D07-May-20213.4 KiB12371

serve_mux_test.goH A D07-May-20211.6 KiB7359

server.goH A D07-May-202121.5 KiB829598

server_test.goH A D07-May-202131.4 KiB1,2371,021

sig0.goH A D07-May-20214.6 KiB198165

sig0_test.goH A D07-May-20212.2 KiB9289

singleinflight.goH A D07-May-20211.6 KiB6239

smimea.goH A D07-May-20211.3 KiB4529

svcb.goH A D07-May-202120.1 KiB755569

svcb_test.goH A D07-May-20212.5 KiB121113

tlsa.goH A D07-May-20211.1 KiB4534

tsig.goH A D07-May-202111 KiB430341

tsig_test.goH A D07-May-202110.8 KiB354298

types.goH A D07-May-202136 KiB1,5631,219

types_generate.goH A D07-May-20218.6 KiB321259

types_test.goH A D07-May-20214.3 KiB194157

udp.goH A D07-May-20212.9 KiB10367

udp_test.goH A D07-May-20214.4 KiB146115

udp_windows.goH A D07-May-20211.2 KiB3618

update.goH A D07-May-20213.1 KiB11187

update_test.goH A D07-May-20214.4 KiB153116

version.goH A D07-May-2021275 169

version_test.goH A D07-May-2021180 118

xfr.goH A D07-May-20216.6 KiB267205

xfr_test.goH A D07-May-20212.7 KiB130104

zduplicate.goH A D07-May-202120.2 KiB1,3411,262

zmsg.goH A D07-May-202159.7 KiB2,8762,642

ztypes.goH A D07-May-202129.5 KiB953940

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
77
78Send pull request if you want to be listed here.
79
80# Features
81
82* UDP/TCP queries, IPv4 and IPv6
83* RFC 1035 zone file parsing ($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) are supported
84* Fast
85* Server side programming (mimicking the net/http package)
86* Client side programming
87* DNSSEC: signing, validating and key generation for DSA, RSA, ECDSA and Ed25519
88* EDNS0, NSID, Cookies
89* AXFR/IXFR
90* TSIG, SIG(0)
91* DNS over TLS (DoT): encrypted connection between client and server over TCP
92* DNS name compression
93
94Have fun!
95
96Miek Gieben  -  2010-2012  -  <miek@miek.nl>
97DNS Authors 2012-
98
99# Building
100
101This library uses Go modules and uses semantic versioning. Building is done with the `go` tool, so
102the following should work:
103
104    go get github.com/miekg/dns
105    go build github.com/miekg/dns
106
107## Examples
108
109A short "how to use the API" is at the beginning of doc.go (this also will show when you call `godoc
110github.com/miekg/dns`).
111
112Example programs can be found in the `github.com/miekg/exdns` repository.
113
114## Supported RFCs
115
116*all of them*
117
118* 103{4,5} - DNS standard
119* 1348 - NSAP record (removed the record)
120* 1982 - Serial Arithmetic
121* 1876 - LOC record
122* 1995 - IXFR
123* 1996 - DNS notify
124* 2136 - DNS Update (dynamic updates)
125* 2181 - RRset definition - there is no RRset type though, just []RR
126* 2537 - RSAMD5 DNS keys
127* 2065 - DNSSEC (updated in later RFCs)
128* 2671 - EDNS record
129* 2782 - SRV record
130* 2845 - TSIG record
131* 2915 - NAPTR record
132* 2929 - DNS IANA Considerations
133* 3110 - RSASHA1 DNS keys
134* 3123 - APL record
135* 3225 - DO bit (DNSSEC OK)
136* 340{1,2,3} - NAPTR record
137* 3445 - Limiting the scope of (DNS)KEY
138* 3597 - Unknown RRs
139* 403{3,4,5} - DNSSEC + validation functions
140* 4255 - SSHFP record
141* 4343 - Case insensitivity
142* 4408 - SPF record
143* 4509 - SHA256 Hash in DS
144* 4592 - Wildcards in the DNS
145* 4635 - HMAC SHA TSIG
146* 4701 - DHCID
147* 4892 - id.server
148* 5001 - NSID
149* 5155 - NSEC3 record
150* 5205 - HIP record
151* 5702 - SHA2 in the DNS
152* 5936 - AXFR
153* 5966 - TCP implementation recommendations
154* 6605 - ECDSA
155* 6725 - IANA Registry Update
156* 6742 - ILNP DNS
157* 6840 - Clarifications and Implementation Notes for DNS Security
158* 6844 - CAA record
159* 6891 - EDNS0 update
160* 6895 - DNS IANA considerations
161* 6944 - DNSSEC DNSKEY Algorithm Status
162* 6975 - Algorithm Understanding in DNSSEC
163* 7043 - EUI48/EUI64 records
164* 7314 - DNS (EDNS) EXPIRE Option
165* 7477 - CSYNC RR
166* 7828 - edns-tcp-keepalive EDNS0 Option
167* 7553 - URI record
168* 7858 - DNS over TLS: Initiation and Performance Considerations
169* 7871 - EDNS0 Client Subnet
170* 7873 - Domain Name System (DNS) Cookies
171* 8080 - EdDSA for DNSSEC
172* 8499 - DNS Terminology
173* 8659 - DNS Certification Authority Authorization (CAA) Resource Record
174* 8914 - Extended DNS Errors
175* 8976 - Message Digest for DNS Zones (ZONEMD RR)
176
177## Loosely Based Upon
178
179* ldns - <https://nlnetlabs.nl/projects/ldns/about/>
180* NSD - <https://nlnetlabs.nl/projects/nsd/about/>
181* Net::DNS - <http://www.net-dns.org/>
182* GRONG - <https://github.com/bortzmeyer/grong>
183