Vous pouvez obtenir les ips de plusieurs cartes réseau en affichant les ips avec ifconfig. Par exemple, cela ressemble à ce qui suit. Pensez à la façon d'obtenir l'adresse NIC de eth0 à partir de cela avec ifconfig.
$ 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
Pour gerp avec ifconfig et obtenir uniquement l'adresse IP, procédez comme suit.
ifconfig eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
Affichez les informations de la carte réseau que vous souhaitez obtenir avec ifcongit eth0. Si vous souhaitez obtenir l'adresse IP d'une autre carte réseau, spécifiez le numéro comme ethXX. (Est-ce le cas ...) Après cela, je passe le résultat dans un tube et le grep avec une expression régulière. o est une option pour ne prendre que les correspondances, P est une expression canonique de style Perl, Avec cette combinaison, vous pouvez créer une pièce où l'extraction de ligne et le découpage correspondent.
Recommended Posts