shelllogging来自特定地址的UDPstream

我试图logging一个传入的UDPstream(stream意味着它是连续的数据报stream)。

我尝试了netcat但不幸的是多个源发送数据在同一个端口地址和nc不让你指定源或目标多播地址。

然后我尝试tcpdump -w -因为tcpdump有丰富的过滤选项,但它logging了原始stream,我只需要实际的数据,所以我可以像处理stream一样处理它。 不幸的是,它logging了所有与数据包有关的信息,如源/目的地或IP / UDP头。

有没有办法做到这一点? 我可以写一个小的C程序来做到这一点,但我更喜欢使用现有的工具。

我的第一个select将是wireshark。 如果你必须从terminal执行,你也可以尝试ngrep,它比tcpdump提供了更可读的输出。 你可以用一个简单的bash脚本过滤出头信息。

http://ngrep.sourceforge.net/usage.html#http

你可以使用wireshark 。 它可以做你想要的更多。

wireshark是没有用的,如果你想要的是接收stream中的数据并将其提供给程序。 在这种情况下,我不得不说你正在使用错误的协议。 如果我在你的位置,我会作弊

希望你在Linux上。 在这种情况下,制定一个防火墙重写规则,将发送到正确端口的来自所需源的传入UDP数据包发送到另一个端口,您可以使用netcat在数据stream中logging数据。

这个问题将帮助你开始。

netsed或iptables + 的libnetfilter_queue模块或ngrep可能会做你想做的。