2010-09-12 9 views
8

La salida de netstat contiene algo así ...Extracto de IP desde la salida de 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 

que utilizan estos comandos

netstat -anpt|grep apache2 |grep ESTABLISHED | awk -F "[ :]" '{print $4}' 

yo no era capaz de conseguir el IP, ninguna pista?

Respuesta

9

Esto devolverá una lista de direcciones IP únicas que estés conectado también:

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

Bueno, yo creo que tenga que cambiar mis lentes también = P

2

Estás muy cerca. Sólo tiene que cambiar su campo separador de expresión regular de modo que no está considerando un solo espacio en blanco o dos puntos como separador de campo:

netstat -anpt|grep apache2 |grep ESTABLISHED | awk -F "[ :]*" '{print $4}' 
2

Puede intentar

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

Por alguna razón I cuento 6 campos, mientras que todos los demás cuentan 4 ... ¿Debería comprar anteojos nuevos? :)

HTH!

+0

Eres No el único. Recomiendo mover los patrones de grep dentro de awk. –

+0

@glenn jackman De acuerdo. Editado A veces, en las preguntas bien formadas, cuando OP publica su solución, creo que es mejor modificar el mínimo posible, ya que hace que el error sea más fácil de entender. Puede ser que estoy equivocado –

2
netstat -anpt | awk '/apache2/&&/ESTABLISHED/{sub(/:*/,"",$4);print $4} ' 
+0

La acción awk debería ser: '{sub (/:.*/,"" ,$ 5); imprimir $ 5}' –

+1

¿por qué es $ 5? No estoy usando ningún FS, pero el valor predeterminado es – ghostdog74

+0

. Solía ​​ser de $ 4, pero subía a $ 5. Código inflado. – Lizz

-1
netstat -ant | grep 80 | wc -l 
+0

Esto contará cuántos 80 figuran en la salida del comando 'netstat -ant', que es muy inexacto. –

Cuestiones relacionadas