mir3c/squashfs-root/usr/sbin/getstainfo.sh

73 lines
3.3 KiB
Bash
Executable File

LOGGER="/usr/bin/logger"
IWINFO="/usr/bin/iwinfo"
IWPRIV="/usr/sbin/iwpriv"
LOG_STR="wifi_log: "
#wificount=`cat /etc/config/wireless | grep "wifi-device" | wc -l`
wificount=2
subnum=16
stainfo_idx=7
wl_dump_assoclist()
{
local ifname
ifname=$1
ssid="`${IWINFO} ${ifname} assoclist | grep "ssid:" | awk -F " " '{print $2}'`"
bssid="`${IWINFO} ${ifname} assoclist | grep "bssid:" | awk -F " " '{print $2}'`"
channel="`${IWINFO} ${ifname} assoclist | grep "channel:" | awk -F " " '{print $2}'`"
stacount="`${IWINFO} ${ifname} assoclist | grep "stacount:" | awk -F " " '{print $2}'`"
noise="`${IWINFO} ${ifname} assoclist | grep "noise:" | awk -F " " '{print $2}'`"
if [ ! ${stacount} -eq 0 ]; then
dump_info="${LOG_STR}Ifname=\"${ifname}\", Noise=\"${noise} dBm\", Stacount=\"${stacount}\", SSID=\"$ssid\", Bssid=\"$bssid\", Channel=\"$channel\""
echo ${dump_info}
${LOGGER} ${dump_info}
for j in `seq ${stacount}`
do
i=$(($j + $stainfo_idx))
sta_mac="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $1}'`"
sta_phy="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $2}'`"
sta_security="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $3}'`"
sta_rssi="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $4}'`"
sta_noise="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $5}'`"
sta_snr="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $6}'`"
sta_rx_rate="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $7" Mbit/s"}'`"
sta_rx_upkts="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $8" Pkts"}'`"
sta_rx_ukbyte="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $9" Kbytes"}'`"
sta_rx_mpkts="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $10" Pkts"}'`"
sta_rx_mkbyte="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $11" Kbytes"}'`"
sta_tx_rate="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $12" Mbit/s"}'`"
sta_tx_upkts="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $13" Pkts"}'`"
sta_tx_ukbyte="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $14" Kbytes"}'`"
sta_tx_mpkts="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $15" Pkts"}'`"
sta_tx_mkbyte="`${IWINFO} ${ifname} assoclist | awk -F " " 'NR=='"${i}"'{print $16" Kbytes"}'`"
dump_stainfo="${LOG_STR}sta_mac=\"${sta_mac}\", Phy=\"${sta_phy}\", Security=\"${sta_security}\", RSSI=\"${sta_rssi}\", Noise=\"${sta_noise}\",snr=\"${sta_snr}\", RX=\"${sta_rx_rate}\", RX_UCAST_PKT=\"${sta_rx_upkts}\", RX_UCAST_KBYTE=\"${sta_rx_ukbyte}\", RX_MCAST_PKTS=\"${sta_rx_mpkts}, RX_MCAST_KBYTE=\"${sta_rx_mkbyte}\", TX=\"${sta_tx_rate}\", RX_UCAST_PKT=\"${sta_rx_upkts}\", TX_UCAST_KBYTE=\"${sta_tx_ukbyte}\", TX_MCAST_PKTS=\"${sta_tx_mpkts}\", TX_MCAST_KBYTE=\"${sta_tx_mkbyte}\""
echo $dump_stainfo
${LOGGER} $dump_stainfo
done
fi
}
for n in `seq ${wificount}`
do
let n=n-1
ifname="wl$n"
cat /proc/net/dev | grep -q "wl$n"
if [ $? -eq 1 ]; then
continue
fi
wl_dump_assoclist "wl$n"
for sub in `seq $subnum`; do
cat /proc/net/dev | grep -q "wl$n.$sub"
if [ $? -eq 1 ]; then
continue
fi
wl_dump_assoclist "wl$n.$sub"
done
done