gpt4 book ai didi

bash - 使用 tshark 获取 tcpdump

转载 作者:行者123 更新时间:2023-12-04 04:32:50 25 4
gpt4 key购买 nike

我正在尝试编写一个有点“脏”的网站过滤器 - 例如用户想要访问色情网站(基于域名)

所以基本上,我得到了类似的东西

#!/bin/bash
sudo tshark -i any tcp port 80 or tcp port 443 -V | grep "Host.*keyword"

它工作得很好,但现在我需要在找到一些东西(iptables 和 DROPing 数据包......)后做一些 Action 。我遇到的问题是 tcp 转储仍在运行。如果我有一个完整的数据文件,我想要达到的目标很容易解决。

在伪代码中,我想要一些类似的东西:
if (tshark and grep found something)
iptables - drop packets
sleep 600 # a punishment for an user
iptables accept packets I was dropping
else
still look for a match in the tcp dump that's still running

感谢您的帮助。

最佳答案

也许您可以尝试以下操作:

tshark OPTIONS 2>&1 | grep --line-buffered PATTERN | while read line; do
# actions for when the pattern is found, the matched input is in $line
break
done
2>&1很重要,因此当 PATTERN 匹配且 while 循环终止时, tshark由于管道损坏,无处写入并终止。

如果您想保留 tshark运行并分析 future 的输出,只需删除 break .这样,while 循环永远不会终止,它会继续读取来自 tshark 的过滤输出。 .

关于bash - 使用 tshark 获取 tcpdump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20306923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com