
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|::)'