При работе с OpenWRT я использую этот метод, чтобы узнать качество связи связанных беспроводных клиентов (режим AP):

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

Я использую, чтобы смотреть в первую очередь на два поля битрейта , так как плохая ссылка Wi-Fi использует для замедления скорости.

Но на DD-WRT для моего Buffalo WHR-HP-G54 у меня есть только эта команда, которая не выдает информацию о битрейте или шуме для связанных клиентов:

~ # /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

Я знаю, что с помощью графического интерфейса я могу получить эту информацию, но доступ к ней через командную строку более полезен, поскольку я могу создавать сценарии и анализировать данные.

Есть ли способ узнать качество связи для каждого подключенного клиента Wi-Fi?

Дополнительные данные:

  • Я задал этот вопрос на форуме DD-WRT, но не повезло.
  • Внедренная команда wl похоже, не дает эту информацию, или я не смог ее найти.

1 ответ1

0

Нашел нужную вам информацию здесь:

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 в приведенном выше фрагменте кода команда nvram возвращает имена беспроводных интерфейсов, например:

# echo $(nvram get wl_ifnames)
eth1 eth2

wl assoclist дает вам MAC-адреса каждого подключенного клиента:

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

используйте rssi, чтобы получить мощность каждого сигнала:

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

используйте sta_info для получения дополнительных данных

# 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .