DD-WRT: Wie kann ich über die CLI-Shell die Verbindungsqualität jedes mit WLAN verbundenen Clients erraten?

0

Beim Umgang mit OpenWRT benutze ich diese Methode, um die Verbindungsqualität der zugeordneten drahtlosen Clients zu kennen (AP-Modus):

root@AP-0:~# iw dev wlan0 station dump
Station 4c:74:03:f2:15:27 (on wlan0)
        inactive time:  5050 ms
        rx bytes:       10053
        rx packets:     70
        tx bytes:       6004
        tx packets:     46
        tx retries:     20
        tx failed:      0
        signal:         -84 [-86, -91] dBm
        signal avg:     -83 [-85, -88] dBm
        tx bitrate:     21.7 MBit/s MCS 2 short GI
        rx bitrate:     6.0 MBit/s
        authorized:     yes
        authenticated:  yes
        preamble:       short
        WMM/WME:        no
        MFP:            no
        TDLS peer:      no

Ich schaue in erster Linie auf die beiden Bitratenfelder , da eine schlechte WLAN-Verbindung die Geschwindigkeit verlangsamt.

Aber auf DD-WRT für meinen Buffalo WHR-HP-G54 habe ich nur diesen Befehl, der für verbundene Clients keine Bitrate- oder Rauschinformationen liefert:

~ # /usr/sbin/wl assoclist
assoclist E4:9A:79:5E:F6:DD
assoclist 2C:F0:EE:7B:00:B4
assoclist 84:DB:AC:A6:B4:E6
assoclist B0:34:95:27:F4:B6

Ich weiß, dass ich diese Informationen über die GUI erhalten kann, aber es ist sinnvoller, sie über die Befehlszeile zu erreichen, solange ich die Daten skripten und analysieren kann.

Gibt es eine Möglichkeit , die Verbindungsqualität für jeden verbundenen WLAN-Client zu ermitteln?

Weitere Daten:

  • Ich habe diese Frage im DD-WRT-Forum ohne Glück gestellt.
  • Der wleingebettete Befehl scheint diese Informationen nicht zu geben, oder ich konnte sie nicht finden.
Sopalajo de Arrierez
quelle

Antworten:

0

Finden Sie hier die Informationen, die Sie brauchen:

for INTERFACE in $(nvram get wl_ifnames)
do
  for CLIENT in $(wl -i $INTERFACE assoclist | sed 's/assoclist//')
  do
    echo $INTERFACE $CLIENT $(wl -i $INTERFACE rssi $CLIENT)
  done
done

OK, im obigen Code snip erhält der Befehl nvram die Namen der drahtlosen Schnittstelle wie folgt:

# echo $(nvram get wl_ifnames)
eth1 eth2

Mit wl assoclist erhalten Sie die MAC-Adressen aller verbundenen Clients:

# wl -i eth2 assoclist
assoclist 11:11:11:11:11:11
assoclist 22:22:22:22:22:22

Mit rssi können Sie die Signalstärke der einzelnen Geräte ermitteln:

# wl -i eth2 rssi 22:22:22:22:22:22
-64

Verwenden Sie sta_info, um zusätzliche Daten abzurufen

# wl -i eth2 sta_info 22:22:22:22:22:22
 STA 22:22:22:22:22:22:
         aid:1
         rateset [ 6 9 12 18 24 36 48 54 ]
         idle 2 seconds
         in network 1647 seconds
         state: AUTHENTICATED ASSOCIATED AUTHORIZED
         flags 0x11e13b: BRCM WME PS N_CAP VHT_CAP AMPDU AMSDU
         HT caps 0x6f: LDPC 40MHz SGI20 SGI40
         VHT caps 0x63: LDPC SGI80 SU-BFR SU-BFE
         tx data pkts: 959451
         tx data bytes: 199701001
         tx ucast pkts: 16565
         tx ucast bytes: 40283979
         tx mcast/bcast pkts: 942886
         tx mcast/bcast bytes: 159417022
         tx failures: 0
         rx data pkts: 9659
         rx data bytes: 1144526
         rx ucast pkts: 9650
         rx ucast bytes: 1143442
         rx mcast/bcast pkts: 9
         rx mcast/bcast bytes: 1084
         rate of last tx pkt: 866667 kbps
         rate of last rx pkt: 24000 kbps
         rx decrypt succeeds: 7880
         rx decrypt failures: 1
         tx data pkts retried: 15
         tx data pkts retry exhausted: 0
         per antenna rssi of last rx data frame: -68 -71 -66 0
         per antenna average rssi of rx data frames: -68 -71 -64 0
         per antenna noise floor: -98 -98 -98 0
Lee Ballard
quelle
Könnten Sie bitte ein Beispiel hinzufügen?
Sopalajo de Arrierez