MACアドレスを取得してファイルに書き出すシェルスクリプト
            
          
        
はじめに
- トレーニングをお客様先で実施する際、持ち込んだMacを現地のWiFiに接続するためにMACアドレスを求められる場合があります
 
- 未認証のデバイスを接続させないため、MACアドレスでフィルタリングを掛ける目的です
 
- 手作業で取得するのは辛いので、シェルスクリプトを用意しました
 
- あとで集約する際のために、ファイル名にはMacのSerial Numberを付けるようにしました
 
検証環境
シェルスクリプトの内容
#!/bin/sh
## GET Serial Number of this Mac
SERIAL=`ioreg -l | awk '/IOPlatformSerialNumber/ { if (gsub(/"/, "")) print $4 }'`
## Write MAC address of primary WiFi interfce in "{SERIAL NUMBER}.txt" on this user's Desktop
ifconfig en0 ether | awk '/ether/ { print $2 }' > ~/Desktop/${SERIAL}.txt
Serial Numberを取得して、変数に代入
SERIAL=`ioreg -l | awk '/IOPlatformSerialNumber/ { if (gsub(/"/, "")) print $4 }'`
ioregで、ハードウェアデバイスとドライバの情報を取得 
awkを利用して、以下の処理を実行
IOPlatformSerialNumberを含む行だけを抽出
    |   "IOPlatformSerialNumber" = "C0XXXXXXXXXX" 
 
"を除去する
    |   IOPlatformSerialNumber = C0XXXXXXXXXX 
 
- スペースで区切った4つ目のフィールドを出力
 
 
WiFiインターフェイスのMACアドレスを取得し、ファイルに書き込み
ifconfig en0 ether | awk '/ether/ { print $2 }' > ~/Desktop/${SERIAL}.txt
ifconfigでインターフェイスを指定して、MACアドレスの情報を取得 
awkを利用して、以下の処理を実行
etherを含む行だけを抽出
 
- スペースで区切った2つ目のフィールドを出力
 
 
- デスクトップ上の、ファイル名
{Serial Number}.txtのファイルに書き込み 
最後に