【问题标题】:How to retrieve IP address from DNS response message如何从 DNS 响应消息中检索 IP 地址
【发布时间】:2014-11-10 19:21:25
【问题描述】:

我一直在尝试为一个小项目编写 DNS 请求-回复。这是我发送的 DNS 请求消息 de42010000010000000000000377777706676f6f676c6503636f6d0000010001,用于查询 www.google.com 的 IP 地址。我请求的服务器是141.26.64.1。我设法得到了响应包。但我不确定如何从 resonse 字节数组中检索 IP 地址。我在 Internet 上找到了一个示例,该示例假定响应的最后四个字节包含解析的 IP 地址。它总是真实的吗?或者解析 IP 的 4 个字节从哪个位开始。暂时我不想详细介绍 DNS 响应数据报的细节,因为我试图让我的代码尽可能简单。所以我只想知道这些 4 字节 bigin 是否存在特定的位位置。 提前感谢

【问题讨论】:

  • DNS 协议本身有大量文档;您应该尝试选择数据包格式并从那里开始
  • 你的DNS请求怎么样?

标签: java dns


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多