【问题标题】:Standard text representation of DNS resource records?DNS 资源记录的标准文本表示?
【发布时间】:2018-10-12 12:57:21
【问题描述】:

我想为 DNS 记录创建一个解析器(例如,dig 返回的内容),但我找不到标准的文本表示 - 据我所知,RFC 只指定了有线格式。但是,https://tools.ietf.org/id/draft-daley-dnsxml-00.html 中的介绍暗示存在标准格式:

从历史上看,DNS 资源记录 (RR) 具有表示格式和有线格式。演示格式通常用于以人类可读的形式方便地存储 DNS RR。

有谁知道这些演示格式是否在任何地方定义?

【问题讨论】:

    标签: parsing dns


    【解决方案1】:

    “区域文件”格式标准化在RFC1035第5节中标准化

    这是标准的文本表示。

    但是关于

    我想为 DNS 记录做一个解析器(例如 dig 返回的内容)

    不要对dig 输出进行解析。使用您想要的任何类型的编程语言,您会找到执行 DNS 请求的库,然后使用这些库以正确的结构获得结果,而不是尝试解析命令的文本输出。然后,您也将摆脱记录的任何实际文本表示。

    【讨论】:

    • 谢谢,但我们的想法是创建一些东西来帮助某人理解 DNS 记录中的字段,例如由dig。有点像 explainshell.com 对 shell 命令所做的事情。所以我不打算自己做任何 DNS 查询。
    • @user693861 我仍然认为将dig 文本输出解析为任何不重要的/oneshot 不是一个好主意。您将遇到各种问题,包括空格、行返回、超时、服务器损坏等。您不需要自己进行 DNS 查询,可以让库为您完成。例如,在 Python 中,请参阅此示例:stackoverflow.com/questions/13842116/…。该库负责 DNS 工作,并将结构化数据返回给您,您可以按照您希望的任何方式分析和使用。
    • 是的,我明白,这不是我的用例。我希望已经完成 DNS 查询的其他人能够使用我的服务来解释结果。我的问题的重点是查看文本表示是否有标准格式,但根据您的回答,似乎没有。
    • "如果有文本表示的标准格式",同样,在 RFC1035 第 5 节中定义的 zonefile 主格式。这主要与为自己提供所有这些的权威名称服务器相关。 DNS 是二进制格式,DNS 客户端以有线格式获取数据,然后对其进行解析。碰巧dig 以区域主格式显示它,因为它是人类疑难解答 工具,所以最好有“漂亮”的输出。此输出预计不会被其他程序使用...
    • “其他人已经完成了 DNS 查询”你怎么能确定它是用 dig 完成的(很多人仍然使用 nslookup 甚至 host)?以及对手头的案例有意义的正确选择?许多dig 选项会改变显示的内容和显示方式。你总是可以解析我只是说你会有很多案例和很多惊喜......
    猜你喜欢
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2017-05-09
    • 2016-03-10
    • 2018-04-26
    相关资源
    最近更新 更多