我正在做家庭作业,基本上要求我们解析DNS响应以获取IP地址等。问题是教授已经非常详细地告诉我们DNS服务器的响应是什么,但我不知道发送服务器的内容。我的第一次尝试是netcat <ip address of local name server> 53
,只需输入www.google.com并按Enter键查找回复,但我没有收到任何回复。
任何人都可以向我描述一下DNS查询的样子(比如查询的每个部分允许多少字节)?
答案 0 :(得分:5)
答案 1 :(得分:4)
这应该由RFC 1034第3.7节介绍,但是我只是略过了它,更别说实际阅读了它。
答案 2 :(得分:1)
DNS查询的基本形状是一个短标题,基本上是所有固定字节值,如果你取名字后面会得到它,用点(.
)作为前缀,然后替换每个带有1-63范围内的字节的点,表示名称的下一段到下一个点的长度,后跟一些更多的固定值字节。只要您所做的只是基本的地址查找而且没有像区域传输这样的花哨,这就是您需要了解的有关DNS协议的所有信息。
有关标题等字段的详细信息,请阅读RFC 1035.或者只是从数据包嗅探器转储中复制它们。您唯一想要改变的是查询ID(它应该是随机的,以避免对您的程序进行琐碎的欺骗攻击),以及可能的RR类型(例如,如果您需要查询IPv6(AAAA)或反向DNS( PTR)记录除了A。
答案 3 :(得分:0)
这并没有直接回答你的问题,但是尝试运行命令行的nslookup并查看可用的选项。您可以指示它查询特定项目,例如MX记录等。
但是如果你对协议本身的含义更感兴趣?此RFC提供的信息超出了您的预期:http://tools.ietf.org/html/rfc1035