netstat输出包含类似......
的内容tcp 0 0 0.0.0.0:80 221.126.149.99:51973 ESTABLISHED 23879/apache2
tcp 0 0 0.0.0.0:80 66.249.68.154:40883 ESTABLISHED 23899/apache2
tcp 0 0 0.0.0.0:80 66.249.68.81:41200 ESTABLISHED 23892/apache2
tcp 0 0 0.0.0.0:80 66.249.67.121:59355 ESTABLISHED 23905/apache2
tcp 0 4465 0.0.0.0:80 110.75.175.27:48139 ESTABLISHED 23901/apache2
我使用此命令
netstat -anpt|grep apache2 |grep ESTABLISHED | awk -F "[ :]" '{print $4}'
我无法获得IP,任何提示?
答案 0 :(得分:12)
这将返回您连接的唯一IP地址列表:
netstat -anpt | grep apache2 |grep ESTABLISHED | awk '{ print $5 }' | cut -d: -f1 | sort -u
嗯,我想我还需要更换眼镜= P
答案 1 :(得分:2)
你真的很亲密。您只需要更改字段分隔符正则表达式,这样它就不会将单个空格或冒号视为字段分隔符:
netstat -anpt|grep apache2 |grep ESTABLISHED | awk -F "[ :]*" '{print $4}'
答案 2 :(得分:2)
您可以尝试
netstat -anpt|awk 'BEGIN {FS="[ :]+"};/ESTABLISHED/ && /apache/{print $6}'
出于某种原因我正在计算6个字段,而其他人都在计算4个...我应该买新眼镜吗? :)
HTH!
答案 3 :(得分:2)
netstat -anpt | awk '/apache2/&&/ESTABLISHED/{sub(/:*/,"",$4);print $4} '
答案 4 :(得分:-1)
netstat -ant | grep 80 | wc -l