回答:
以下は、イーサネットの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します。しかし、私が行った解決策はそれを読み取ることでした-追加の解析は必要ありません。さらに、今後の「予測可能なネットワークインターフェース名」を保存するための単純な試みのように書いています。ifconfiglinkaddr/sys/class/net/wlan0/addresscat /sys/class/net/wl*/address
ifconfig wlan0最初の行の終わりにハードウェアアドレス、つまりMACを入力します。