firmware/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home

72 lines
2.3 KiB
Plaintext
Executable File

#!/usr/bin/haserl
<%
echo -en "content-type: text/plain\r\n\r\n"
addr() {
local addr="$(ip -$1 address show dev $2 2> /dev/null | tr '/' ' '| awk '/inet/{ printf("%s ", $2); }')"
echo "${addr:--}"
}
default_gw() {
ip -$1 route list 0/0 dev $2 2> /dev/null | awk '{print($3); exit(0)}'
}
print() {
echo " option $1 '$2'"
}
printList() {
for item in $2; do
echo " list $1 '$item'"
done
}
#include OpenWrt version
. /etc/openwrt_release
. /etc/firmware_release
echo "package misc"
echo "config data 'data'"
print 'mac' "$(uci -q get network.mesh.macaddr)"
wanif=$(uci -q get network.wan.ifname)
printList 'freifunk_addr4' "$(addr 4 br-mesh)"
printList 'freifunk_addr6' "$(addr 6 br-mesh)"
printList 'wan_addr4' "$(addr 4 $wanif)"
printList 'wan_addr6' "$(addr 6 $wanif)"
up="$(uptime)"
print 'load' "${up##*:}"
uptime="${up%%,*}"
print 'uptime' "${uptime##*up}"
print 'uname' "$(uname -s -m -r)"
print 'date' "$(date)"
if [ $(sockread /var/run/fastd.status < /dev/null 2> /dev/null | grep -c '"connection": {') -gt 0 ]; then
print 'has_vpn' 'Ja'
else
print 'has_vpn' 'Nein'
fi
if [ -n "$(default_gw 4 $wanif)" -o -n "$(default_gw 6 $wanif)" ]; then
print 'has_internet' 'Ja'
else
print 'has_internet' 'Nein'
fi
print 'node_count' "$((`cat /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 39-55 | sort | uniq | wc -l 2> /dev/null`+1))"
print 'neigh_count' "$(cat /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | cut -b 37-53 | sort | uniq | wc -l 2> /dev/null)"
print 'firmware_version' "$FIRMWARE_VERSION"
print 'fastd_version' "$(fastd --version 2> /dev/null | cut -d' ' -f 2)"
print 'batman_version' "$(cat /sys/module/batman_adv/version 2> /dev/null)"
print 'openwrt_version' "$DISTRIB_DESCRIPTION"
name="$(uci get -q 'system.@system[0].hostname')"
print 'name' "${name:--}"
print 'model' "$(cat /tmp/sysinfo/model 2> /dev/null)"
print 'freifunk_user_count' "$(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W')"
print 'freifunk_rx_bytes' "$(cat /sys/class/net/br-mesh/statistics/rx_bytes 2> /dev/null)"
print 'freifunk_tx_bytes' "$(cat /sys/class/net/br-mesh/statistics/tx_bytes 2> /dev/null)"
print 'wan_rx_bytes' "$(cat /sys/class/net/$wanif/statistics/rx_bytes 2> /dev/null)"
print 'wan_tx_bytes' "$(cat /sys/class/net/$wanif/statistics/tx_bytes 2> /dev/null)"
%>