Sie können die IPs mehrerer Netzwerkkarten abrufen, indem Sie die IPs mit ifconfig anzeigen. Zum Beispiel sieht es wie folgt aus. Überlegen Sie, wie Sie mit ifconfig die NIC-Adresse von eth0 daraus ermitteln können.
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.28.99.150 netmask 255.255.240.0 broadcast 172.28.111.255
inet6 fe80::215:5dff:xxx:xxxx prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:90:90:41 txqueuelen 1000 (Ethernet)
RX packets 742 bytes 149376 (149.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 1216 (1.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Gehen Sie wie folgt vor, um mit ifconfig zu arbeiten und nur die IP-Adresse abzurufen.
ifconfig eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
Zeigen Sie die Informationen der Netzwerkkarte an, die Sie mit ifcongit eth0 erhalten möchten. Wenn Sie die IP-Adresse einer anderen Netzwerkkarte erhalten möchten, geben Sie die Nummer wie ethXX an. (Ist das der Fall ...) Danach übergebe ich das Ergebnis in einer Pipe und grep es mit einem regulären Ausdruck. o ist eine Option, um nur die Übereinstimmungen zu nehmen. P ist ein kanonischer Ausdruck im Perl-Stil. Mit dieser Kombination können Sie ein Teil erstellen, bei dem Zeilenextraktion und Beschneiden übereinstimmen.
Recommended Posts