NIC(eth0)のアドレス部分だけを取得する
ネットワークのアドレス
ifconfigでipを表示すると複数のNICのipが取得できます。
例えば下記のような感じです。
この中からifconfigでeth0のNICアドレスを取得するにはどうするのかを考えます。
$ 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
eth0のアドレスをgrepする
ifconfigでgerpしてipアドレスだけを取得するには下記のようにします。
ifconfig eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
ifcongit eth0 で取得したいNICの情報を表示させます。
もし別のNICのIPアドレスが取得したければethXXといった感じでナンバーを指定します。
(これで通じるのだろうか。。。。)
その後パイプで結果を渡して正規表現でgrepしてます。
oはマッチしたとこだけ取るオプションでPはPerl形式の正規表現で、
この組み合わせで行の抽出と切り出しがマッチした部分のができますね。
Author And Source
この問題について(NIC(eth0)のアドレス部分だけを取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/nakamoto_yuki/items/b2696f246cc84c49d1a0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .