Linux에서는 사용 가능한 WiFi 네트워크를 검색하면서 iw
많은 정보를 제공합니다. iwlist
내가 말하고 싶은 것은너무 많은정보. 2,308줄은 사람이 분석하기에는 너무 많은 양입니다. 물론, 나는 바쁜 아파트 건물에 있지만 더 중요한 것은 긴 출력이 실제로 나에게 방해가 된다는 것입니다.
$ sudo iw dev wlp8s0 scan | wc -l
2308
나는 단순한 출력을 선호합니다. 근처 액세스 포인트에 대한 간략한 개요를 보여주는 비교적 짧은 표입니다. 이 출력은 GUI WiFi 유틸리티(SSID, 신호 강도, 암호화 유형)에서 기대할 수 있는 다양한 필드만 터미널에 표시합니다.
유사한 사용자들이 나보다 먼저 동일한 작업을 수행했으며 iw
.1,2,삼,4,5,6,7,8,9,10,11,12,13,14
iw
이 질문에 대해 제가 찾은 거의 모든 대답은 와 같은 도구의 출력을 구문 분석하고 iwlist
사용하는 것을 권장하지만 grep
이는 그다지 좋은 대답은 아닌 것 같습니다. 특히 그 출력이 다음과 같이 명시적으로 명시되어 있기 때문에sed
awk
iw
아니요긁어냈다.
이 도구를 스크린 스크랩하지 마십시오. 출력이 불규칙한 것으로 간주됩니다.
nmcli
온다고 말하고 싶다꽤 가까워내가 원하는 것에는 그냥 NetworkManager
전달하는 것 nmcli
외에는 Google 검색보다 더 일반적인 것 같습니다 iw
.iwlist
nmcli
WiFi 스캔 출력구성된 경우FreeBSD에서는 다음과 같습니다완벽한. 이 구현이 모든 BSD 버전에 공통적으로 적용되는지는 확실하지 않지만 Linux에서 갖고 싶은 도구와 정확히 일치합니다.
WiFi 네트워크를 검색하고 나열할 수 있는 거의 모든 Linux 버전에 대한 유사한 재고/표준 도구가 있습니까?단순한출력은 위와 같죠?
답변1
대부분의 Linux 플랫폼과 함께 제공되며 wpa_supplicant
독립형으로 사용하거나 NetworkManager 및 해당 CLI 도구와 같은 다른 "프레임워크"에서 사용할 수 있습니다 wpa_cli
. 나는 새로운 시스템 방법을 알지 못합니다 (다른 모든 방법을 대체하는 경향이 있습니다 ...).
# wpa_cli
wpa_cli v2.6
[...]
Selected interface 'wlan0'
Interactive mode
> scan
OK
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>CTRL-EVENT-NETWORK-NOT-FOUND
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>CTRL-EVENT-NETWORK-NOT-FOUND
> scan_results
bssid / frequency / signal level / flags / ssid
xx:xx:xx:xx:xx:xx 2412 -39 [WPA2-PSK-CCMP][ESS]
xx:c7:29:xx:xx:xx 2462 -56 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] SomeSSID
xx:e9:dd:xx:xx:xx 2412 -57 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] OtherSSID
xx:8e:78:xx:xx:xx 2412 -65 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] AthirdSSID
[...]
또는 비대화형:
# wpa_cli scan_results
Selected interface 'wlan0'
bssid / frequency / signal level / flags / ssid
xx:xx:xx:xx:xx:xx 2412 -40 [WPA2-PSK-CCMP][ESS]
[...]
(참고로 이것은 숨겨진 ssid입니다.)
답변2
BusyBox 호환 버전을 제공하는 사람을 봤습니다.여기. JSON 형식으로 출력하고 유니코드와 호환되도록 개선했습니다. 확인하시기 바랍니다그것나가.
아래는 의 출력을 구문 분석하는 예입니다 iw
.
wifiscan wlan0 | jq
결과
[
{
"mac": "c2:4b:e6:1e:95:b3",
"ssid": "Angel 的 Chromecast",
"freq": "2412",
"sig": "-62.00 dBm",
"sig%": "63.3333",
"wpa": "n",
"wpa2": "y",
"wep": "n",
"tkip": "n",
"ccmp": "y"
},
{
"mac": "1c:49:7b:30:23:3f",
"ssid": "TAO",
"freq": "2412",
"sig": "-56.00 dBm",
"sig%": "73.3333",
"wpa": "n",
"wpa2": "y",
"wep": "n",
"tkip": "n",
"ccmp": "y"
}
]
답변3
저는 이것을 Raspberry Pi OS가 설치된 Raspberry Pi에서 사용하고 있는데, 제가 일반적으로 관심을 갖는 정보(BSSID, SSID, 2.4GHz 대 5)와 함께 각 네트워크에 대해 한 줄의 출력을 제공하기 때문에 가장 마음에 듭니다. GHz:
sudo wpa_cli -i wlan0 scan; sleep 5; sudo wpa_cli -i wlan0 scan_results
노트:
-i
저에게는 WiFi 인터페이스가 하나만 있어도 어떤 인터페이스를 사용할지 지정하는 것이 필요합니다.sleep
명령을 생략하고 간단히 몇 번만 실행할 수 있습니다 . 몇 초 후에 네트워크가 나타납니다.