$docroot ??= ($_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp'); // add translations $_SERVER['REQUEST_URI'] = 'settings'; require_once "$docroot/webGui/include/Translations.php"; if (isset($_POST['listen'])) { die(exec("$docroot/webGui/scripts/show_interfaces")?:_('Any')); } // Helper function to normalize bitrate values function normalizeBitrate($rate) { $parts = explode(' ', $rate); return intval($parts[0] ?? 0).' '.($parts[1] ?? 'Bit/s'); } function isPort($eth) { $sys = "/sys/class/net"; if (substr($eth,0,4) == 'wlan') return $eth; $x = preg_replace('/[^0-9]/', '', $eth) ?: '0'; return file_exists("$sys/br{$x}") ? "br{$x}" : (file_exists("$sys/bond{$x}") ? "bond{$x}" : "eth{$x}"); } exec("grep -Po 'nameserver \K\S+' /etc/resolv.conf 2>/dev/null",$ns); $eth = $_POST['port'] ?? ''; $vlan = $_POST['vlan'] ?? ''; $wlan0 = $eth == 'wlan0'; $port = isPort($eth).($vlan ? ".$vlan" : ""); $v6on = trim(file_get_contents("/proc/sys/net/ipv6/conf/$port/disable_ipv6"))==='0'; $none = _('None'); $error = ""._('Missing').""; $note = in_array($eth,['eth0','wlan0']) && !$vlan ? $error : $none; $ipv4 = array_filter(explode(' ',exec("ip -4 -br addr show ".escapeshellarg($port)." scope global 2>/dev/null | awk '{\$1=\$2=\"\";print;exit}' | sed -r 's/ metric [0-9]+//g; s/\/[0-9]+//g'"))); $gw4 = exec("ip -4 route show default dev ".escapeshellarg($port)." 2>/dev/null | awk '{print \$3;exit}'") ?: $note; $dns4 = array_filter($ns,function($ns){return strpos($ns,':') === false;}); if ($v6on) { $ipv6 = array_filter(explode(' ',exec("ip -6 -br addr show ".escapeshellarg($port)." scope global -temporary 2>/dev/null | awk '{\$1=\$2=\"\";print;exit}' | sed -r 's/ metric [0-9]+//g; s/\/[0-9]+//g'"))); $gw6 = exec("ip -6 route show default dev ".escapeshellarg($port)." 2>/dev/null | awk '{print \$3;exit}'") ?: $note; $dns6 = array_filter($ns,function($ns){return strpos($ns,':') !== false;}); } echo "
| "._('Network name').": | $network $band |
| "._('Signal level').": | $signal |
| "._('Receive bitrate').": | $rxrate |
| "._('Transmit bitrate').": | $txrate |
| "._('Interface link').": | $link |
| "._('Interface speed').": | $speed |
| "._('IPv4 address').": | $ip |
| "._('IPv4 address').": | $note |
| "._('IPv4 default gateway').": | $gw4 |
| "._('IPv4 DNS server').": | $dns |
| "._('IPv4 DNS server').": | $error |
| "._('IPv6 address').": | $ip |
| "._('IPv6 address').": | $note |
| "._('IPv6 default gateway').": | $gw6 |
| "._('IPv6 DNS server').": | $dns |
| "._('IPv6 DNS server').": | $error |