Q1 - 是否可以使用库捕获DNS请求/响应?
Q2 - 如果是,一旦我有了数据包,任何人都有任何示例代码 这表明我如何从DNS响应中提取字段?在 特别是DNS为给定DNS名称解析的IP地址 特别提供。
答案 0 :(得分:2)
是的,这是可能的。
示例代码有点偏长,但是......
实质上,您需要:
然后根据RFC 1035中给出的非常详尽的描述处理数据包的其余部分。
在实践中,这意味着:
QR == 1
)RCODE == 0
和ANCOUNT > 0
更复杂的是,您必须处理DNS标签(一系列 <count><data...>
字段)并可能处理压缩标签!
这听起来很讨厌,但实际上 很难。我有C ++代码完成所有这些并且它不是那么久,但我不能发布它。