如何从DNS响应消息中检索IP地址

时间:2014-11-10 19:21:25

标签: java dns

我一直在尝试为一个小项目编写DNS请求 - 回复。以下是我发送的用于查询de42010000010000000000000377777706676f6f676c6503636f6d0000010001的IP地址的DNS请求消息www.google.com。我请求的服务器是141.26.64.1。我设法得到了响应数据包。但我不知道如何从共振字节数中检索IP地址。我在互联网上找到了一个例子,它假设响应的最后四个字节包含已解析的IP地址。它总是如此吗?或者从哪个位位置开始解析IP的4个字节。暂时我不想深入了解DNS响应数据报的详细信息,因为我试图让我的代码尽可能简单。所以我只想知道是否有一个特定的位位置,那些4字节bigin。 Thanx提前

1 个答案:

答案 0 :(得分:0)

我不认为存在DNS答案中的IP地址的特定位置。 DNS响应中可以有多种记录,如CNAME,A,NX。 IP地址存储在" A"记录。还可以有一个"附加"和"权威"部分。您需要根据DNS protocol解析整个数据报。请查看该文档中的第4部分。

如果您想保持代码简单或高效,您应该考虑使用库。