はじめに
- macbook proだとDNSサーバーの情報を下記のように取得できる
~ networksetup -listallhardwareports | grep 'Hardware Port'
Hardware Port: USB 10/100/1000 LAN
Hardware Port: Ethernet Adapter (en4)
Hardware Port: Ethernet Adapter (en5)
Hardware Port: Ethernet Adapter (en6)
Hardware Port: Thunderbolt Bridge
Hardware Port: Wi-Fi
Hardware Port: Thunderbolt 1
Hardware Port: Thunderbolt 2
Hardware Port: Thunderbolt 3
~ networksetup -getdnsservers 'USB 10/100/1000 LAN'
MYIPADDRESS
- しかしmacminiだとポートの情報がmacbook proのそれと異なる
- どのインターフェースが使われているのか判別できない
➜ ~ networksetup -listallhardwareports | grep 'Hardware Port'
Hardware Port: Ethernet
Hardware Port: Ethernet Adapter (en5)
Hardware Port: Ethernet Adapter (en6)
Hardware Port: Thunderboltブリッジ
Hardware Port: Wi-Fi
Hardware Port: Thunderbolt 1
Hardware Port: Thunderbolt 2
➜ ~ networksetup -getdnsservers 'Ethernet'
There aren't any DNS Servers set on Ethernet.
➜ ~ networksetup -getdnsservers 'Wi-Fi'
There aren't any DNS Servers set on Wi-Fi.
対応
- 下記からen0: Ethernetが使われているとわかる
ifconfig | awk '/^[a-z0-9]+:/{iface=$1} /status: active/{print iface}' | sed 's/://' | while read iface; do
port=$(networksetup -listallhardwareports | awk -v dev="$iface" '
BEGIN {port=""}
/Hardware Port/ {port=$3; for (i=4; i<=NF; i++) port=port " " $i}
/Device/ && $2==dev {print port}
')
echo "$iface : $port"
done
# 出力結果
# en0 : Ethernet
# en1 : Wi-Fi
# awdl0 :
gistにも残しておいた。
- DNS情報の取得、変更は下記のようにできる
➜ ~ networksetup -getdnsservers 'Ethernet'
There aren't any DNS Servers set on Ethernet.
➜ ~ networksetup -setdnsservers 'Ethernet' DNSIPADDRESS