netstat: So schließen Sie localhost vom Ergebnis aus, wenn Sie grep verwenden

netstat: So schließen Sie localhost vom Ergebnis aus, wenn Sie grep verwenden

Wenn ich diesen Befehl in meinem Terminal ausführe:

netstat -an | egrep ":80|:443" | sort

Ich habe die folgende Ausgabe erhalten:

tcp        0      0 172.104.10.125:48310    172.104.10.125:8081     TIME_WAIT  
tcp        0      0 172.104.10.125:48316    172.104.10.125:8081     TIME_WAIT    
tcp        0      0 172.104.10.125:48428    172.104.10.125:8081     ESTABLISHED
tcp        0      0 172.104.10.125:80       0.0.0.0               LISTEN     
tcp        0      0 172.104.10.125:80       5.111.110.185:23784     SYN_RECV   
tcp        0      0 172.104.10.125:80       89.109.64.166:42690     TIME_WAIT  
tcp6       0      0 ::1:443                 ::                    LISTEN     
tcp        0      0 172.104.10.125:443      60.51.33.253:65270      ESTABLISHED
tcp        0      0 172.104.10.125:443      66.249.79.94:49202      ESTABLISHED
tcp6       0      0 172.104.10.125:8080     172.104.10.125:39668    TIME_WAIT  

172.104.10.125 ist meine IP-Adresse. Wie schließe ich das obige Ergebnis aus, das in der 5. Spalte „172.104.10.125“, „0.0.0.0“ und „::“ enthält? Denn dabei handelt es sich um vertrauenswürdige lokale IP-Adressen und Protokolle.

Wenn ich dies verwende:

egrep -v "172.104.10.125|::|0.0.0.0" 

es wird alles ausgeschlossen, was nicht in der 5. Spalte steht

Antwort1

Sie könnten awk verwenden

awk '$5 !~ "^(172\.104\.10\.125:[0-9]+|0\.0\.0\.0|::)$"'

aber grep kann das

grep -Ev '^([^ ]+ +){4}(172\.104\.10\.125:[0-9]+|0\.0\.0\.0|::)'

verwandte Informationen