Есть ли способ получить уровень сигнала на всех устройствах, подключенных к беспроводной сети в OpenWRT? Я хочу проверить уровень сигнала устройств, подключенных к маршрутизатору. Мой роутер имеет ядро OpenWRT.
2 ответа
Я использую свой маршрутизатор OpenWRT в качестве ретранслятора, и я использовал пост Дэниела для написания этого сценария, чтобы постоянно обновлять информацию о силе сигнала WiFi моей уже подключенной базовой станции при настройке линии обзора антенны. (используйте Ctrl+ C, чтобы остановить выполнение)
#!/bin/bash
iface="wlan0"
while true
do
clear
iw dev $iface station dump | grep 'signal:\|beacon signal'
let "x++"
echo Read Count: $x
sleep 1
done
Да, на самом деле это довольно просто: iw dev wlan0 station dump
. Вот соответствующая документация. ,
Какой-то парень на форумах OpenWrt создал скрипт, который перечисляет связанные станции, а также ищет IP-адреса и имена хостов для этих станций. Я адаптировал его для использования iw
вместо устаревшей команды wl
:
#! /bin/ash
ifaces="wlan0 wlan1"
for iface in $ifaces
do
echo $iface
stations=`iw dev $iface station dump | grep Station | awk '{print $2}'`
for sta in $stations
do
echo "------------------------------------------------------"
iw dev $iface station get $sta
echo -e "\t ---"
grep $sta /proc/net/arp | awk '{print "\t IP: "$1" (from ARP table)"}'
grep -i $sta /var/dhcp.leases | awk '{print "\t IP: "$3" (from DHCP Lease)\n\t NAME: "$4" (from DHCP Lease)"}'
done
echo "------------------------------------------------------"
done
Обратите внимание, что мой маршрутизатор имеет две беспроводные сетевые карты, которые могут отсутствовать на вашем маршрутизаторе. Настройте переменную ifaces
соответственно.