비슷하다네트워크 장치 이름 찾기에 대한 이전 질문, (신뢰할 수 있는) 장치 이름 목록을 가져오고 싶지만 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