捕获发往某个IP和端口的网络数据包,并将它们存储在队列中

时间:2013-02-01 07:09:37

标签: c# java c

我想知道如何捕获那些发往某个IP和端口的网络数据包,并在它们到达应用程序层之前将它们存储在队列中。以后根据条件我想要将数据包出列并将它们发送到上层或销毁数据包。是否可以在.NET框架中使用C#?

3 个答案:

答案 0 :(得分:1)

你需要一个代理才能做到这一点,这将充当“中间人”

答案 1 :(得分:0)

执行此操作的一种方法(在使用虚拟的现代Linux系统上)将配置iptables以将数据包重新路由到不同的IP地址(例如127.xxx地址),编写捕获/无论这些数据包的应用程序,以及然后再重新发送。您可能需要在虚拟机中运行您的真实应用程序...并在虚拟网络层中执行iptable技巧...以便真正的应用程序可以通过侦听“真实”IP地址来获取内容。

但它会变得混乱和复杂......并且可能容易丢弃数据包和虚拟机稳定性。

答案 2 :(得分:0)

只需运行ettercap或tcpdump。然后,如果你想要,你可以使用wireshark检查数据包,或者如果你愿意,你可以用你喜欢的任何语言编写自己的程序来处理原始数据。