当前位置: 首页 > 知识库问答 >
问题:

如何正确格式化原始DNS查询?

濮献
2023-03-14

我正在创建一个Lua库来帮助处理发送和接收DNS请求,目前正在阅读这个(DNS协议RFC),但我不知道如何正确格式化请求。例如,我是否必须指定消息的长度?我该怎么做?

我了解,从我的Wireshark检查,我应该也包括选项之后。我还在响应中看到一个0x00;这是否意味着我只需在添加值之前,将请求名称终止为零?

我特别谈论的部分是RFC的4.1.3。

一些注意事项:我使用个人服务器对此进行了测试,并在查询部分获得了这些值:0661 6c 69 73 61 04 69 6e 66 6f 00。我特别感兴趣的是00,它在WireShark中突出显示,这意味着它意义重大。我假设这意味着这些值以null结尾?那么关于类型和类的选项如下?

共有1个答案

宋志学
2023-03-14

当第4.1.3节提到“名称”时,它指的是第3.1节中的定义,其中规定域名由一系列标签组成,每个标签由一个长度规范八位字节和若干个八位字节组成。最后一个标签始终是根区域,它的名称长度为零,因此只包含长度为零的八位字节。所以,是的,整个名称以零八位字节结尾,但它不是通常的C字符串意义上的“零结尾”。

还要注意,只有长度八位字节中较低的六位是长度数据,最高的两位是标志。

 类似资料:
  • 这个程序的输出与预期的一样,它给出2014-12-01 17:30:15。 但是当我在iFormat中将hh替换为hh(与outputformat相同)时,它给出的输出为12Out格式2014-12-01 05:30:15 如果我将两者都转换为小写,也会发生同样的情况。为什么会出现这种类型的不一致?

  • 问题内容: 将log4j添加到我的应用程序后,每次执行我的应用程序时,都会得到以下输出: 看来这意味着缺少配置文件。此配置文件应位于何处,什么是良好的入门内容? 我使用纯Java开发桌面应用程序。因此没有网络服务器等… 问题答案: 默认情况下,在上查找名为或的文件。 您可以按照此处所述通过设置系统属性来控制它用来初始化自身的文件(查找“默认初始化过程”部分)。 例如: 将导致在类路径上查找名为的文

  • 问题内容: 我有一些格式不一致的现有代码-有时两个空格用于缩进,有时四个空格,以此类推。代码本身是正确的,并且经过了严格的测试,但是格式却很糟糕。 在线上是否有一个地方,我可以简单地粘贴一段Python代码并自动为我缩进/设置格式?或者,是否可以执行类似的操作,并用格式化的版本覆盖每个文件? 问题答案: 编辑:如今,我建议使用autopep8,因为它不仅可以纠正缩进问题,而且(根据您的判断)可以使

  • 我试图在调用LocalTime时使用getter在中获取它。目前的情况是: 我想让它返回中的时间,因为现在它是。我想弄乱日期时间格式化程序,但我搞不清楚。这是我的:

  • 问题内容: 我有一个JSON格式的以下文件: 之前: 使用以下代码处理数据后: 我将JSON保存到另一个文件中: 问题是,保存文件后,格式损坏了: 我的问题是-如何在PowerShell中保留源格式? 问题答案: 由于您的原始json包含一个只有一个元素的数组,因此PowerShell会将其压缩为仅一个元素。如果在输出中希望再次将其作为数组,请使用rokumaru的好答案。 但是,PowerShe