我知道每个端口只能分配给一个应用。但是,我想这样做:
(1)我想监视端口,例如80.此端口已由另一个应用程序分配,例如Apache
(2)我可以复制发送到该端口的每个套接字,并将这些端口重定向到另一个端口
我搜索过tcpdump,它可以捕获数据包(包含全部内容)。但我不知道如何复制数据包然后将它们发送到另一个端口?
或者,也许还有其他工具可以轻松捕获数据包?
如果我想实施自己,可以给我一些细节吗?因为我不擅长套接字编程。
答案 0 :(得分:0)
正如您所正确指出的那样,您将无法使用套接字轻松地从端口80获取数据包。这是因为如果第二个套接字也要接收该端口的数据包,那么它将需要重用该端口(SO_REUSEADDR选项)。如果应用程序是第三方,并且您无法将此选项设置为服务器套接字,则此操作无效。你probbaly可以尝试检查scapy,它有一个嗅探数据包的选项,看看它是否符合我们的要求:http://www.secdev.org/projects/scapy/doc/usage.html。