Ostatnio zainteresowałem sie WAPem i WML. Pomyślałem, że można by go jakoś wykorzystać i napisałem prosty skrypt, który pokaże na waszych komórkach status routerków, które administrujecie.
1. Wymagania
+ uruchomiany serwer www na routerze (testowałem na thttpd)
+ możliwość połączenia się w tym serwerem od strony netu 
+ statystyki niceshapera
2. Możliwości: standardowo skrypt pokazuje:
+ nazwe routera
+ ilość userów online (na podstawie statystyk niceshapera)
+ łączny download (na eth1)
+ łączny upload (na eth1)
+ adresy ip userow online (na podstawie statystyk niceshapera)
+ aktualny download i upload usera (na podstawie statystyk niceshapera)
3. Instalacja
4. Konfiguracja
- wyedytuj skrypt by go skonfigurować
- znajdź linijke: #sciezka do pliku ze statystykami niceshapera
- poniżej wpisz pełną ścieżkę do tego pliku (znajdziesz ją w pliku /etc/niceshaper/config w linijce: stats unit xxx dump to file sciezka)
5. Uruchomienie
Skrypt co 10 sekund odświeża statystyki i umieszcza dane w podanych przez Ciebie plikach (domyślnie index.wml i more.wml). Aby zobaczyć wynik działania skryptu uruchom w Twoim telefonie połączenie WAP (GRPS) i połącz się z witryną
http://ip.twojego.routera/index.wml6. Kod skryptu
#!/bin/bash
#
# Nazwa: wml_stats
# Opis: Skrypt do generowania statystyk ilosci userow, lacznego downloadu
# uploadu oraz listy ip userow wraz z pasmem, ktore w danej chwili
# zajmuja wg niceshapera zapisujacy dane wyjsciowe w formacie WML
# Autor: Khazis
# Version: 0.2b - 25.02.2006
#
#configuracja
#sciezka do pliku statystyk niceshapera
nice_stats='/var/www/nsstats.txt'
#sciezka dla pliku glownego
export='/var/www/index.wml'
exp_link='index.wml'
#sciezka dla pliku ze szczegolami
export_more='/var/www/more1.wml'
exp_more_link='more1.wml'
#petelka powtarzajaca skrypt
while :; do
#obliczanie ilosci userow
users=`cat $nice_stats | wc -l`
let users-=4
#obliczanie downloadu i uploadu
PPP=`cat /proc/net/dev | grep -v "00:00:00:00:00:00" | grep -w eth1`
TPPP=`echo $PPP | awk '{print $1" "$2}' | awk -F: '{print $2}' | awk '{print $1}'`
OPPP=`echo $PPP | awk -F: '{print $2}' | awk '{print $9}'`
sleep 1
PPPA=`cat /proc/net/dev | grep -v "00:00:00:00:00:00" | grep -w eth1`
TPPPA=`echo $PPPA | awk '{print $1" "$2}' | awk -F: '{print $2}' | awk '{print $1}'`
OPPPA=`echo $PPPA | awk -F: '{print $2}' | awk '{print $9}'`
#obliczenie predkosci w Kbit/s
let down=(OPPPA-OPPP)/1000*8
let up=(TPPPA-TPPP)/1000*8
#generowanie glownej stronki wml
echo '
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Router Status">
<p>
' > $export
echo 'Router:<b>' `hostname` '</b><br/>' >> $export
echo 'Userow online:<b>' $users '</b><br/>'>> $export
echo 'Download:<b>' $down'Kb/s' '</b><br/>'>> $export
echo 'Upload:<b>' $up'Kb/s' '</b><br/>'>> $export
echo '
</p>
<p>
<a href="'$exp_more_link'">Szczegoly</a>
</p>
</card>
</wml>
' >> $export
#generowanie szczegolow
echo '
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Router Status">
<p><!-- Tutaj rozpoczyna sie tresc karty -->
<b>Userzy Online:</b><br/>
' > $export_more
#wypisanie ip userow bedacych online
cat /var/www/nsstats.txt | grep " - " | awk '{OFS=", ";ORS="<br/>"; print $1,$5,$10}' >> $export_more
echo '
</p>
<p>
<a href="'$exp_link'">Powrot</a>
</p>
</card>
</wml>
' >> $export_more
#czekamy 10 sec i od nowa
sleep 10
done
Oczywiście można dodać do statystyk dowolne dane pobrane z systemu. Dzieki skryptowi można również sprawdzać z dowolnego miejsca na Ziemi bez dostępu do netu czy router pracuje (a dokładniej czy działa na nim serwer www).
Miłej zabawy

_________________
Podobno wyobraźnia nie ma granic?
A czy Twoja je ma?
http://elixir.int.pl