如何列出当前连接到特定端口的所有唯一 IP 地址?

mot*_*bói 5 awk netstat

假设我想知道有多少唯一客户端连接到服务器上的端口 5222。

你能找到比这更好/更快/更强的方法吗?

netstat -nt | grep ':5222.*ESTABLISHED' | awk '{ print $5 }' \
| grep -Po '[0-9]{1,3}(\.[0-9]{1,3}){3}' | uniq | wc -l
Run Code Online (Sandbox Code Playgroud)

我知道这对于互联网地址来说是一个过于简单的正则表达式,但似乎没有必要检查格式正确的地址,因为 netstat 可能只输出有效的地址。

有人可以来netstat -nt | awk { awesomeness }吗?

一个netstat -nt | awk { simplicity }| uniq | wc -l,也许?

Jod*_*e C 3

如果您使用的是 Linux 并且可以安装ss

ss -o state established '( dport = :5222 )'|awk -F"[\t :]+" 'NR!=1{ ip[$5]+=1 } END{ for (i in ip){n++};print n }'
Run Code Online (Sandbox Code Playgroud)

如果您想解释 awk,请告诉我。