我试图阻止有许多端口25连接(垃圾邮件)的IP
我有以下命令:
netstat -an|grep :25| awk {'print $4'} | cut -d: -f1 | sort | uniq -c | sort -n
这产生如下输出:
1 1 127.0.0.1 2 185.11.11.11 10 185.11.11.22 20 185.11.11.33 50 185.11.11.44
我想只过滤第一列大于15的行.
谢谢
如果您不需要总连接数而只需要IP列表,则此行将执行:
netstat -an | awk '$4~/:25/{gsub(":25","",$4); s[$4]++; if(s[$4]==15){print $4}}'
$4~/:25/
过滤包含':25'的行(相当于行中的grep)
gsub(":25","",$4)
从IP地址中删除端口号(字段4)
s[$4]++
增加给定IP的计数器
if(s[$4]==15){print $4}
如果计数等于15,则打印IP