-1

我在 OS X 应用程序中使用 pcap 来理解数据包分析。我正在使用一个应用程序https://github.com/jpiccari/MacAlyzer ,但我只获得原始数据,但我想将每个域请求区分为单独且清晰的方式来读取请求和响应值。请指导我如何使用 pcap 开发应用程序。

我尝试了一些代码,但它们将数据转换为十六进制格式。如何将该数据转换为有意义的请求和响应对象,例如 Charles 和 Fiddler show?

4

2 回答 2

0

以下是发人深省的食物:

http://www.binarytides.com/packet-sniffer-code-c-linux/

无论如何,您将需要使用 C。因此,请检查包含的代码,例如:

http://www.eg.bucknell.edu/~cs363/2014-spring/code/tcp.h

这是“pcap”的文档:

http://www-01.ibm.com/support/knowledgecenter/#!/ssw_aix_71/com.ibm.aix.basetrf1/pcap_close.htm

于 2015-04-29T00:38:26.137 回答
0

MacAlyzer 不是为您的需要而开发的。我知道,因为我是作者。如前所述,Charles 和 Fiddler 是网络代理,它们的工作方式完全不同(并且服务于不同的目的)。

深入研究您的问题,客户端和服务器之间的通信发生在 IP 到 IP 而不是域到域。域信息不包含在 IP 或 TCP 级别的数据包中。相反,计算机请求域到 IP 查找信息,然后将其存储并使用客户端和服务器 IP 地址进行通信。

MacAlyzer,实际上是 libpcap,没有复杂的数据包解析(比如 Wireshark),也不能像其他程序那样详细地显示数据包信息。在我对这个项目失去兴趣之前,我正在计划一个允许更丰富的数据包剖析和分析的库,但空闲时间变得非常有限。

至于向 MacAlyzer 添加域信息,我将在高层次上进行解释,因为您似乎知道自己在做什么。要在 Source 和 Destination 列中包含域信息而不是 IP 地址,您可以在ip.m中编辑函数 ip_host_string() 。此函数控制客户端和服务器地址的显示方式。修改它以从 IP 地址查找主机名并返回结果字符串将导致显示域而不是 IP 地址。

如果您提出了一些不错的更新,请考虑提交拉取请求。

于 2013-08-13T04:47:29.543 回答