PR

IPアドレスとMACアドレスを取得する

XWSS018600_s4

正しい手順のスクリプトやCOOLなスクリプトはあちこちに転がっている。

Linuxライクなスクリプトは、しばしばコマンドラインの実行結果の一部を取得することがある。

例えば、ifconfigコマンドの実行結果は以下のようになる。

スポンサードリンク

# ifconfig
 eth0      Link encap:Ethernet  HWaddr 00:0C:29:FA:XX:XX
 inet addr:192.168.1.19  Bcast:192.168.1.255  Mask:255.255.255.0
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:287468 errors:2 dropped:20 overruns:0 frame:0
 TX packets:110926 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:98985227 (94.3 MiB)  TX bytes:15708917 (14.9 MiB)
 Interrupt:51 Base address:0x2000

lo        Link encap:Local Loopback
 inet addr:127.0.0.1  Mask:255.0.0.0
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

IPアドレスの取得

逆引きシェルスクリプト/自機のIPアドレス一覧を取得する – Linuxと過ごす」によるIPアドレスを取得するスクリプトは、以下のようになっている。

$ LANG=C /sbin/ifconfig | grep 'inet addr' | grep -v 127.0.0.1 | awk '{print $2;}' | cut -d: -f2
172.16.0.100
192.168.0.100

MACアドレスを取得

これは便利だと少し加工してMACアドレスを表示するように変更してみた。

単一NICの場合

# LANG=C /sbin/ifconfig | grep 'HWaddr' | awk '{print $5;}'
00:0C:29:FA:XX:XX

複数NICの場合

ちなみに、複数NICの場合は以下のようになった。

(物理的には1つのNICだが、仮想関連で幾つか追加されているようだ)

$ LANG=C /sbin/ifconfig | grep 'HWaddr' | awk '{print $5;}'
e8:39:35:1f:XX:Xf
e8:39:35:1f:XX:Xe
e8:39:35:1f:XX:Xf
96:d9:9f:c9:XX:XX

あまり出番は無いだろうが、必要になることもあるのでメモ程度に残しておく。

コメント