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