【问题标题】:Dns protocol headerDns 协议头
【发布时间】:2009-11-09 02:53:14
【问题描述】:

我想使用 C 对 DNS 协议头进行编码并创建一个 UDP 数据报。 假设我有一个查询 www.google.com。

任何人都可以建议如何去做吗?

您可以在此处找到标题格式 - http://www.nersc.gov/~scottc/software/snort/dns_head.html

【问题讨论】:

  • 有什么问题?是关于 C:我如何打包位?是关于协议的:操作码定义是什么?
  • 你了解结构中的位域,它们是如何在 C 中定义的吗?您提到的结构定义已设置,因此您可以简单地直接分配给位域。
  • 谁能指点我可以学习的教程或示例代码

标签: c dns


【解决方案1】:

RFC 1035 详细解释了 DNS 数据包格式。请注意,格式被设计为尽可能紧凑,因此您必须注意许多位和字节级别的优化。适当、强大的 DNS 编码器和解码器不适合胆小的人。

【讨论】:

  • 你能推荐任何可以帮助我的网站或书籍吗
  • 您需要什么帮助?您是否阅读并理解了该 RFC 文档?
【解决方案2】:

+1 到 RFC 1035。 你可以看看 Wireshark:http://www.wireshark.org/ 它以二进制和解码视图显示数据包 + 包含 C 源代码,因此您可以检查解码是如何实现的。

【讨论】:

  • 欢迎来到 Stack Overflow!你在这里很新,所以我想我会指出“+1”意味着你会点击一个有用的帖子旁边的向上箭头来增加它的投票数。其他人也会为您的帖子做同样的事情,这就是您获得声誉的方式。
  • @Greg。您知道在 50 次代表之前发表评论的唯一方法就是做出回答,对吧?
  • 谢谢你的帮助...我已经安装了wireshark,我现在正在努力
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多