似ているネットワークデバイス名の検索に関する以前の質問、(信頼できる)デバイス名のリストを取得したいが、Wi-Fiデバイスにのみ適用されます。命名構造に応じて、次のようになります。
wlan0
wlan1
または
wlp5s0
wlp5s1
答え1
nmcli
次のすべてのデバイスと種類を一覧表示できます。
nmcli --get-values GENERAL.DEVICE,GENERAL.TYPE デバイスの表示
eno1
ethernet
wlp1s0
wifi
wlp1s1
wifi
p2p-dev-wlp1s0
wifi-p2p
lo
loopback
-g, --get-values
マニュアルによると、使用時「簡潔に出力されます。このモードはコンピュータ(スクリプト)処理用に設計されています。」。したがって、その出力を別のツールにパイプして、次のようなWi-Fiデバイス名を取得できます。
nmcli ... | sed '/^wifi/!{h;d;};x'
または
nmcli ... | awk '/^wifi/{print dev; next};{dev=$0};'
Linuxでは、次のコマンドを使用してiw
ワイヤレスデバイスとその設定を表示/操作することもできます。dev
Commands:
dev
List all network interfaces for wireless hardware.
それは
iw dev
次のような結果が得られます。
phy#0
Interface wlan0
ifindex 3
wdev 0x1
addr 00:12:32:e4:18:24
type managed
phy#1
Interface wlan1
ifindex 4
wdev 0x2
addr 00:12:22:c6:b2:0a
type managed
インターフェイス名だけを抽出するには、次のように出力を処理します。
iw dev | awk '$1=="Interface"{print $2}'
ヘルプページに次のように明確に記載されていることを覚えておいてください。
Do NOT screenscrape this tool, we don't consider its output stable.
答え2
少なくともUbuntuには、/proc/net/wireless
Wi-Fiインターフェースに関する詳細情報を含むファイルがあります。私に合った出力は次のとおりです。
$ cat /proc/net/wireless
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
wlp5s0: 0000 36. -74. -256 0 0 0 16 33004 0
少し汚れていますが、デバイス名はそこにあります。
インターフェイス名のみを取得します。
cat /proc/net/wireless | perl -ne '/(\w+):/ && print $1'
このperl
コードは、コロンの前にある単語文字列を出力します。
答え3
ユニバーサルアプローチ(ルートではない)は、Android 4、Android 7.1、Android 9、およびArchLinuxでテストされています。
ls /sys/class/ieee80211/*/device/net/
答え4
確立されたジョシュの答え、シェルglobを使用して内部ディレクトリを/sys/class/net
含むディレクトリを識別し、デバイス名を取得します。wireless
cut
# find the directories
$ printf '%s\n' /sys/class/net/*/wireless # substitute with phy80211 if desired
/sys/class/net/wlp4s0/wireless
# filter out the "device" part
$ printf '%s\n' /sys/class/net/*/wireless | cut -d/ -f5
wlp4s0