você gosta de |
você?
o melhor que eu venho com
current_ip=$(ifconfig eth0 | awk '$1 == "inet" { split($2,A,":") ; print A[2] ; } ')
netstat -plant | grep $current_ip | awk '{split($5,A,":") ; howmany[A[1]]++ ; }
END { for (h in howmany) printf "%d %s \n",howmany[h],h ;} '|
sort -nr |
while read hm ho
do
name=$(host $ho|awk '{print $NF}')
echo $hm $ho $name
done
onde
- não há necessidade de escapar da nova linha, se o último caractere for um pipe
-
{split($5,A,":") ; howmany[A[1]]++ ; }
lembra cada host e conta (após remover o número da porta) -
END { for (h in howmany) printf "%d %s \n",howmany[h],h ;}
no final do netstat, resultado da impressão -
name=$(host $ho|awk '{print $NF}')
gethostname do IP -
use ${name%%.}
para se livrar de terminar.
- adicione current_ip
não tenho certeza se a minha solução é melhor de qualquer forma, só tenho 4 canais em vez de 12.