인간이 분석할 수 있는 Linux용 WiFi 스캐닝 도구는 어디에 있습니까?

인간이 분석할 수 있는 Linux용 WiFi 스캐닝 도구는 어디에 있습니까?

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이는 그다지 좋은 대답은 아닌 것 같습니다. 특히 그 출력이 다음과 같이 명시적으로 명시되어 있기 때문에sedawkiw아니요긁어냈다.

이 도구를 스크린 스크랩하지 마십시오. 출력이 불규칙한 것으로 간주됩니다.

nmcli온다고 말하고 싶다꽤 가까워내가 원하는 것에는 그냥 NetworkManager전달하는 것 nmcli외에는 Google 검색보다 더 일반적인 것 같습니다 iw.iwlistnmcli

WiFi 스캔 출력구성된 경우FreeBSD에서는 다음과 같습니다완벽한. 이 구현이 모든 BSD 버전에 공통적으로 적용되는지는 확실하지 않지만 Linux에서 갖고 싶은 도구와 정확히 일치합니다.

30.3.4.1.1. 액세스 포인트를 찾는 방법 WiFi 스캐닝을 위한 ifconfig BSD 버전의 간단하고 깔끔한 출력

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명령을 생략하고 간단히 몇 번만 실행할 수 있습니다 . 몇 초 후에 네트워크가 나타납니다.

관련 정보