OpenWrt - Status połączenia
Prezentacja statusu połączeniaOstatnia zmiana: 2010-07-14 18:58
1. Przeniesienie LuCI
2. Strona HTML
3. Test
Proste HOWTO na temat pisania stron opartych na wbudowanym w busybox serwerze http. Wynikiem będzie prosta strona prezentująca status połączenia oraz adres ip interfejsu wan
Przeniesienie LuCI
Domyślnie interfejs graficzny słucha na porcie 80. Można przenieść go na inny port (np. na 8080) a ten domyślny wykorzystać do prezentowania statusu połączenia. Dzięki temu zostanie uruchomiony drugi proces serwera httpd. Jako katalog domowy wskazujemy np. /www1
# uci set httpd.@httpd[0].port=8080
# uci add httpd httpd
# uci set httpd.@httpd[-1].port=80
# uci set httpd.@httpd[-1].home=/www1
# uci commit httpd
# /etc/init.d/httpd restart
Strona HTML
Niestety potrzeba jest znajomość HTML oraz pisania skryptów. Busybox może wykonywać skrypty zawarte w podkatalogu cgi-bin. Należy więc stworzyć plik HTML który nic nie będzie robił a wywoła taki plik.
# touch /www1/index.html
<html>
<head>
<meta http-equiv="refresh" content="0; URL=cgi-bin/status.sh" />
</head>
<body style="background-color: white">
</body>
</html>
# mkdir -p /www1/cgi-bin
# touch /www1/cgi-bin/status.sh
# chmod 755 /www1/cgi-bin/status.sh
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo "
<html>
<style type=\"text/css\">
.centered {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 50%;
height: 50%;
margin: auto;
text-align: center;
}
h1 {
color: red;
}
h2 {
color: green;
}
</style>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
</head>
<body><div class=centered>"
if ping -c1 -W2 www.google.pl > /dev/null; then
echo "<h2>Połączony</h2>"
/sbin/ifconfig $(uci get network.wan.ifname) | awk -F"[ :]+" '/inet/ { print $4 " / " $8}'
else
echo "<h1>Brak połączenia</h1>"
fi
echo "</div></body></html>"
Test
Wpisać w przeglądarce
http://adres_ip_rutera