0

我正在处理的应用程序需要跟踪另一个应用程序的连接性,这意味着检查另一个应用程序是否正在生成和接收 IP 流量。

我们没有其他应用程序的 API,因此通过 WinSock 跟踪 IP 流量。我们通过定义一个 RAW IP 套接字并将 IO 控制设置为 -

int opt = RCVALL_ON;
WSAIoctl((socket) s, SIO_RCV_ALL, &opt, sizeof(opt), NULL, ...); //The rest is "empty"

然后,我们从套接字异步读取数据并查看 IP 标头以查看流量​​属于被跟踪的应用程序。

出现了两个问题——

  1. 是否有另一种更好的方法来跟踪 IP 流量?具体来说,我们需要知道哪些主机向机器发送数据,向哪些主机发送数据,以及何时发送。
  2. 使用上述方法,截获的数据是否从目标应用程序“窃取”?还是目标应用程序将其插入其套接字而不会中断?

谢谢,
阿萨夫

4

2 回答 2

2
  1. 如果您不想要司机,这是跟踪交通的方法。如果您接受驱动程序,WinPCap就是您要走的路。有了更多限制,您可以查看已建立的 tcp 连接(如 netstat),但根据您的要求,我肯定会选择您正在使用的原始套接字方法。

  2. 使用您的方法,数据被复制,而不是被盗。我能找到的唯一明确说明这一点的文档是在MSDN上:“收到的数据报被复制到所有 SOCK_RAW 套接字中......”

于 2011-03-14T12:29:37.130 回答
0

我会认真看看http://en.wikipedia.org/wiki/Pcap

它是 WireShark 用来监控流量的,当我查看他们的 API 时,看起来真的很有用....

于 2011-02-14T10:24:49.467 回答