mirror of
https://github.com/unraid/webgui.git
synced 2026-04-24 02:58:57 -05:00
Wireless: fix potential double entries in station list
Also added wireless band under "info"
This commit is contained in:
@@ -50,16 +50,31 @@ if ($v6on) {
|
||||
echo "<table style='text-align:left;font-size:1.2rem'>";
|
||||
echo "<tr><td> </td><td> </td></tr>";
|
||||
if ($wlan0) {
|
||||
exec("iw wlan0 link | awk '/^\s+(SSID|signal|[rt]x bitrate): /{print $1,$2,$3,$4}'",$speed);
|
||||
if (count($speed)==4) {
|
||||
exec("iw wlan0 link | awk '/^\s+(SSID|freq|signal|[rt]x bitrate): /{print \$1,\$2,\$3,\$4,\$5}'",$speed);
|
||||
if (count($speed) == 5) {
|
||||
$network = explode(': ',$speed[0])[1];
|
||||
$signal = explode(': ',$speed[1])[1];
|
||||
$rxrate = explode(': ',$speed[2])[1];
|
||||
$txrate = explode(': ',$speed[3])[1];
|
||||
$freq = explode(': ',$speed[1])[1];
|
||||
$signal = explode(': ',$speed[2])[1];
|
||||
$rxrate = explode(': ',$speed[3])[1];
|
||||
$txrate = explode(': ',$speed[4])[1];
|
||||
} else {
|
||||
$network = $signal = $rxrate = $txrate = _('Unknown');
|
||||
}
|
||||
echo "<tr><td>"._('Network name').":</td><td>$network</td></tr>";
|
||||
switch (true) {
|
||||
case ($freq >= 2400 && $freq < 2500):
|
||||
$band = '(2.4G)';
|
||||
break;
|
||||
case ($freq >= 5000 && $freq < 6000):
|
||||
$band = '(5G)';
|
||||
break;
|
||||
case ($freq >= 6000 && $freq < 7000):
|
||||
$band = '(6G)';
|
||||
break;
|
||||
default:
|
||||
$band = '';
|
||||
break;
|
||||
}
|
||||
echo "<tr><td>"._('Network name').":</td><td>$network $band</td></tr>";
|
||||
echo "<tr><td>"._('Signal level').":</td><td>$signal</td></tr>";
|
||||
echo "<tr><td>"._('Receive bitrate').":</td><td>$rxrate</td></tr>";
|
||||
echo "<tr><td>"._('Transmit bitrate').":</td><td>$txrate</td></tr>";
|
||||
|
||||
@@ -38,17 +38,18 @@ function scanWifi($port) {
|
||||
exec("iw ".escapeshellarg($port)." scan | grep -P '^BSS|signal:|SSID:|Authentication suites:'",$scan);
|
||||
$n = -1;
|
||||
for ($i=0; $i<count($scan); $i++) {
|
||||
if (substr($scan[$i],0,3)=='BSS') {
|
||||
if (substr($scan[$i],0,3) == 'BSS') {
|
||||
$wlan[++$n]['bss'] = substr($scan[$i],4,17);
|
||||
} elseif (strpos($scan[$i],'signal:')!==false) {
|
||||
} elseif (strpos($scan[$i],'signal:') !== false) {
|
||||
$wlan[$n]['signal'] = trim(explode(': ',$scan[$i])[1]);
|
||||
} elseif (strpos($scan[$i],'SSID:')!==false) {
|
||||
$wlan[$n]['ssid'] = trim(explode(': ',$scan[$i])[1]);
|
||||
} elseif (strpos($scan[$i],'Authentication suites:')!==false) {
|
||||
$wlan[$n]['security'] = trim(explode(': ',$scan[$i])[1]);
|
||||
} elseif (strpos($scan[$i],'SSID:') !== false) {
|
||||
$wlan[$n]['ssid'] = trim(explode(': ', $scan[$i])[1]);
|
||||
} elseif (strpos($scan[$i],'Authentication suites:') !== false) {
|
||||
$wlan[$n]['security'] = trim(explode(': ', $scan[$i])[1]);
|
||||
}
|
||||
}
|
||||
foreach ($wlan as $key) if (!in_array($key['ssid'], array_column($scan, 'ssid'))) $scan[] = $key;
|
||||
$n = 0;
|
||||
foreach ($wlan as $key) if (!in_array($key['ssid'], array_column($scan,'ssid')??[])) $scan[$n++] = $key;
|
||||
return $scan;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user