как получить список подключенных клиентов Wi-Fi в OpenWrt 10.03?
Вы можете использовать arp-table или DHCP-leases. Не идеальное решение, может хватит?
Список arp-table
arp
Список DHCP-аренды
cat /tmp/dhcp.leases
... и в сочетании
for ip in $(arp | grep -v IP | awk '{print $1}'); do
grep $ip /tmp/dhcp.leases;
done
Чтобы увидеть связанных клиентов Wi-Fi, даже если у них нет DHCP-клиента или IP-адреса, необходимо запросить у точки доступа связанные устройства Wi-Fi:
# Universal (Tested with OpenWRT 14.07 and 15.05.X)
iwinfo wlan0/wl0/ath0 assoclist
# Proprietary Broadcom (wl)
wl -i wl0 assoclist
# Proprietary Atheros (madwifi)
wlanconfig ath0 list sta
# MAC80211
iw dev wlan0 station dump
Так вы также увидите скорость соединения. Для меня это выглядит так:
# iwinfo wlan0 assoclist
12:34:56:78:9A:BC -26 dBm / -95 dBm (SNR 69) 1930 ms ago
RX: 24.0 MBit/s, MCS 0, 20MHz 3359 Pkts.
TX: 130.0 MBit/s, MCS 14, 20MHz, short GI 1209 Pkts.
Вместо того cat /tmp/dhcp.leases|wc -l
и arp -a
, мое решение
opkg update
opkg install arp-scan
arp-scan --interface=br-lan --localnet | grep responded | awk '{print $12}'
Он вернет количество устройств, подключенных к OpenWRT через порт LAN. Практически в реальном времени.
Как насчет Nmap?
opkg install nmap
Затем выполните скрытое сканирование вашей подсети (вероятно, 192.168.1.0/24)
nmap -sS 192.168.1.0/24
Здесь также будут перечислены службы, работающие на клиентах. Он также может вызывать тревогу, если на клиенте установлено программное обеспечение для обнаружения сканирования портов (например, snort), поэтому будьте осторожны.
Чтобы получить их прямо из hostapd
(демон, управляющий точкой доступа):
$ ubus call hostapd.wlan0 get_clients
{
"freq": 2462,
"clients": {
"<mac addr 1>": {
"auth": true,
"assoc": true,
"authorized": true,
"preauth": false,
"wds": false,
"wmm": true,
"ht": true,
"vht": false,
"wps": false,
"mfp": false,
"rrm": [
0,
0,
0,
0,
0
],
"aid": 1
}
}
}
(или заменить wlan0
с интересующим вас интерфейсом)