回答:
以下は、イーサネットのMACを判別するために、またはこれがWiFi(Pi Zero Wの場合)に存在しない場合に使用するbashスクリプトの断片です。
ifconfig
割り当てられたIPを検出する方法やその他の方法には依存せず、ネットワークハードウェアを検出するシステムが必要です。
これはジェシー、ストレッチ、バスターで機能します
# Find MAC of eth0, or if not exist wlan0
if [ -e /sys/class/net/eth0 ]; then
MAC=$(cat /sys/class/net/eth0/address)
elif [ -e /sys/class/net/enx* ]; then
MAC=$(cat /sys/class/net/enx*/address)
else
MAC=$(cat /sys/class/net/wlan0/address)
fi
基本的にはMAC=$(cat /sys/class/net/wlan0/address)
、Pi3またはPi Zero Wに組み込まれたWiFiのMACを見つけるために使用できます。
MAC=$(cat /sys/class/net/wlx*/address)
StretchのWiFiドングルで動作するはずですが、WiFiとイーサネットのJessieまたはStretchの両方で動作するように上記を簡単に調整できます。
/sys/class/net
ますか?
端末/コンソールに入力しますifconfig wlan0
最初の行の終わりにハードウェアアドレス、つまりMACを入力します。
以下に出力例(ドイツ語ロケール)を示します。
pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0 Link encap:Ethernet Hardware Adresse b8:27:eb:xx:xx:xx
...
ifconfig
が、今後の良い選択肢とは思いません。
多くのディストリビューションが置き換えifconfig
られているip
ので、の使用はお勧めしませんifconfig
。
wlan0インターフェースを表示するには:
ip link show wlan0
または
cat /sys/class/net/wlan0/address
ifconfig
何年も利用できると確信しています。それを削除すると、約800 kBが節約され、多くの古いスクリプトが壊れます。
ip link show
はおそらくより適切ですip addr show
。
ifconfig
いますが、デフォルトではもうないようですが、Raspbian Stretchにはあるようです。ボブのほうがこの文脈よりもおそらく適切であると言っているのは正しいと思いますが、私はを優先ip
します。しかし、私が行った解決策はそれを読み取ることでした-追加の解析は必要ありません。さらに、今後の「予測可能なネットワークインターフェース名」を保存するための単純な試みのように書いています。ifconfig
link
addr
/sys/class/net/wlan0/address
cat /sys/class/net/wl*/address
ifconfig wlan0
最初の行の終わりにハードウェアアドレス、つまりMACを入力します。