9

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,有什么提示吗?

4

5 回答 5

14

这也将返回您连接的唯一 IP 地址列表:

netstat -anpt | grep apache2 |grep ESTABLISHED | awk '{ print $5 }' | cut -d: -f1 | sort -u

好吧,我想我也需要换眼镜了=P

于 2010-09-13T13:57:08.400 回答
3

你可以试试

netstat -anpt|awk 'BEGIN {FS="[ :]+"};/ESTABLISHED/ && /apache/{print $6}'  

出于某种原因,我数了 6 个字段,而其他人数数 4……我应该买新眼镜吗?:)

于 2010-09-12T05:33:02.117 回答
2

你真的很亲近。您只需要更改字段分隔符正则表达式,使其不考虑将单个空格或冒号作为字段分隔符:

netstat -anpt|grep apache2 |grep ESTABLISHED | awk -F "[ :]*" '{print $4}'
于 2010-09-12T05:27:31.017 回答
2
netstat -anpt | awk '/apache2/&&/ESTABLISHED/{sub(/:*/,"",$4);print $4} ' 
于 2010-09-12T06:24:39.893 回答
-1
 netstat -ant | grep 80 | wc -l
于 2012-09-05T06:26:18.220 回答