我想使用Go制作一个简单的DNS服务器。我知道DNS的工作原理,但我不确定100%的DNS查询的外观。
例如,HTTP GET请求如下所示:
GET /index.html HTTP/1.1
所以我的问题是,DNS查询看起来像这样吗:
QUERY google.com A
还是DNS服务器将二进制表示形式解释为要查询的域名?
您可以签出该miekg/dns项目。 它构建包含的消息的Msg,MsgHdr其中包括QUERY代码(以及其他OpCode)。
miekg/dns
MsgHdr
在消息标题之后,您可以在“ 第15章DNS消息 ”中看到该消息。