【问题标题】:Display packet's detail using libpcap like Wireshark使用 libpcap 显示数据包详细信息,如 Wireshark
【发布时间】:2014-03-25 11:33:38
【问题描述】:
在wireshark中,它能够显示数据包的详细信息,如ip.src、ip.port、info等。单击数据包时,数据包的详细信息显示在(中)底部。
有没有办法显示详细信息(在 tshark 中称为 pdml),即 Frame、Ethernet,如 Wireshark 中使用 libpcap 显示的那样?我知道我们可以使用struct pcap_pkthdr 获取源地址、目标地址,但我计划构建一个类似于 Wireshark 的应用程序,因此需要获取 Wireshark 显示的详细信息。这里的任何专家都想分享我能够与之相关的任何网站或任何来源?谢谢。
【问题讨论】:
标签:
wireshark
packet
pcap
libpcap
【解决方案1】:
但我计划构建一个类似于 Wireshark 的应用程序,因此需要获取 Wireshark 显示的详细信息。
那么您将需要复制 Wireshark 开发人员所做的部分或全部工作。
Ohloh's page on Wireshark 表示 Wireshark “已经有 119 位贡献者提交了 52,184 次提交,代表了 2,849,177 行代码”,并且“从 1998 年 9 月的第一次提交开始,它“花费了大约 840 年的努力(COCOMO 模型)大约 13 小时前的最近一次提交”。 (这更像是“开发人员 840 年的努力”;并不是说 Gerald 在 840 年前就开始研究它并且全部都是自己完成的。:-))
大部分代码行都在解析器核心和使用它的解析器中。
如果您不关心使用 Wireshark 的代码(这意味着您愿意将您的程序的源代码提供给任何获得该程序的人,并愿意让 他们将源代码提供给任何他们想要的人),然后您可以尝试使用 Wireshark 和 TShark 使用的相同 Wireshark 库构建您自己的程序(该库的源代码在 epan Wireshark 源的目录及其子目录)。
如果您只关心一小部分协议,则不需要所有这些。
Libpcap 不会帮助你;它是一个捕获数据包的库,将它们写入捕获文件并读取这些捕获文件,并且包含没有用于分析原始文件数据的代码。