Antworten:
Versuchen Sie dies (Linux)
/sbin/ifconfig eth1 | grep 'inet addr:' | cut -d: -f2| cut -d' ' -f1
oder dies (Linux)
/sbin/ifconfig eth0 | awk -F ' *|:' '/inet addr/{print $4}'
oder dies (* BSD)
ifconfig bge0 | grep 'inet' | cut -d' ' -f2
oder dies (Solaris 10)
ifconfig e1000g0 | awk '/inet / {print $6}'
Ändern Sie natürlich den Namen der Schnittstelle so, dass er mit dem übereinstimmt, von dem Sie die Informationen erhalten möchten.
ifconfig bge0 | grep 'inet' | cut -d' ' -f2
funktioniert (ersetzen Sie bge0
natürlich Ihren entsprechenden Schnittstellennamen anstelle von )
Ein besserer Weg: IP-Adresse vom Befehl "ip" abrufen, da "ifconfig" veraltet ist. Andernfalls tritt ein Problem bei der Verwendung von "ifconfig" auf, da die Ausgabe von ifconfig sprachabhängig ist.
Ich benutze diesen Befehl, um alle IPs (IPv4) zu erhalten:
ip addr show | grep -o "inet [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" | grep -o "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"
ifconfig
hat den Vorteil, auf Systemen zu existieren, die nicht Linux sind ...
Vielleicht hilft das
ifconfig eth1
Wie @Manuel erwähnte, ifconfig
ist es veraltet und ip
der empfohlene Ansatz für die Zukunft .
ip -f inet addr show eth1
und @ bleater's sed oder @Jason H.'s awk zu verwenden, um die Ausgabe zu filtern (je nachdem, ob Sie die Maske wollen)
ip -f inet addr show eth1 | sed -En -e 's/.*inet ([0-9.]+).*/\1/p'
ip -f inet addr show eth1 | awk '/inet / {print $2}'
Ich habe die akzeptierte Antwort unter CentOS 7 ausprobiert , aber sie funktioniert nicht.
/sbin/ifconfig eth0 | grep 'inet ' | tr -s ' ' | cut -d" " -f3
hat für mich gearbeitet, falls jemand anderes auf das gleiche Problem stößt.
ifconfig
sollte vermieden werden. Es ist tatsächlich in einigen neueren Distributionen entfernt. Dies ist wahrscheinlich der Grund, warum Ihre Antwort abgelehnt wurde.