shell - puertos - resultados de netstat
Extraer IP de la salida netstat (5)
La salida netstat contiene cosas como ...
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
Yo uso estos comandos
netstat -anpt|grep apache2 |grep ESTABLISHED | awk -F "[ :]" ''{print $4}''
No pude obtener el IP, ¿alguna pista?
Estás muy cerca. Solo necesita cambiar su expresión regular de separador de campo para que no considere un solo espacio en blanco o dos puntos como el separador de campo:
netstat -anpt|grep apache2 |grep ESTABLISHED | awk -F "[ :]*" ''{print $4}''
Puedes probar
netstat -anpt|awk ''BEGIN {FS="[ :]+"};/ESTABLISHED/ && /apache/{print $6}''
Por alguna razón , estoy contando 6 campos, mientras que todos los demás cuentan 4 ... ¿Debería comprar anteojos nuevos? :)
HTH!
netstat -anpt | awk ''/apache2/&&/ESTABLISHED/{sub(/:*/,"",$4);print $4} ''
Esto le devolverá una lista de direcciones IP únicas a las que está conectado también:
netstat -anpt | grep apache2 |grep ESTABLISHED | awk ''{ print $5 }'' | cut -d: -f1 | sort -u
Bueno, creo que necesito cambiar mis gafas también = P
netstat -ant | grep 80 | wc -l