用Python解包DNS线格式
我正在尝试解读从我的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工作原理的好方法,但如果你的目标是实际完成某项工作,我强烈建议你找一个库来帮你完成。这并不是一项困难的任务,但工作量确实很大。