用Python解包DNS线格式

2 投票
1 回答
608 浏览
提问于 2025-04-29 10:04

我正在尝试解读从我的DNS(Unbound)中获取的二进制数据。

这些数据的格式大概是这样的(举个例子):

'\x00\x10\x03ns1\x06google\x03com\x00'

'\x00\x16\x00\n\x05aspmx\x01l\x06google\x03com\x00'

'\x00\x1b\x002\x04alt4\x05aspmx\x01l\x06google\x03com\x00'

我是在用Python进行这个操作,尝试使用struct模块的unpack方法来处理这些数据。

不过,我找不到合适的方式来表达这个数据的格式。有人能帮我一下吗?

暂无标签

1 个回答

0

DNS的传输格式可以(而且通常会)在一个数据包内部包含指向其他地方的指针,这种情况超出了Python的struct模块所能处理的范围。此外,每种资源记录类型都需要根据自己的规范进行解包。

解析DNS的传输格式数据包是了解DNS工作原理的好方法,但如果你的目标是实际完成某项工作,我强烈建议你找一个库来帮你完成。这并不是一项困难的任务,但工作量确实很大。

撰写回答