获得Linux某端口的连接IP列表
问题
获得连接到 Linux 服务器 1990端口的 IP 列表。提供服务的端口 IP 为192.168.1.1。
解决方法
netstat -nat | grep -i "192.168.1.1:1990 " | awk -F ' ' '{printf $5"\n";}' | awk -F ':' '{printf $1"\n"}' | sort |awk '!i[$1]++'
思路
- 通过 netstat 和 grep 获得所有访问的 line list。
netstat -nat | grep -i "192.168.1.1:1990 "
- 通过 AWK 解析出 IP list。
awk -F ' ' '{printf $5"\n";}' | awk -F ':' '{printf $1"\n"}'
- 通过 sort 和 AWK 去除掉重复的 IP。
sort |awk '!i[$1]++'
需要注意
在第二步中每一次 AWK 筛选中记得给匹配到的 每一个结果加上回车换行。
其他
在某些环境下去重复功能可以使用 sort 来实现。如 Openwrt 下提供的 sort 可以通过参数 u 来去除重复的 line。
这时的解决方法如下:
netstat -nat | grep -i "192.168.1.1:1990 " | awk -F ' ' '{printf $5"\n";}' | awk -F ':' '{printf $1"\n"}' | sort -u
后
将问题分解开来,如何分解,都是在不断的锻炼中获得的能力。
EOF
评论框君很顽皮,需要科学上网才能看到哦!~
关注微信公众号(MarIxs)也能联系到我哦!