Wi-Fiインターフェースデバイス名を取得する

Wi-Fiインターフェースデバイス名を取得する

似ているネットワークデバイス名の検索に関する以前の質問、(信頼できる)デバイス名のリストを取得したいが、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/wirelessWi-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含むディレクトリを識別し、デバイス名を取得します。wirelesscut

# 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

関連情報