Rozwiązań jest kilka:
Pierwsze składa się z plików rc_online, test, dwóch plików graficznych gdzie jeden reprezentuje komputer włączony a drugi wyłączony oraz pliku html wizualizującego tą sieć.
rc_online (umieszczony w katalogu /mnt/router/rc/rcuser)
fork /mnt/router/packages/online/test
hosts (umieszczony w katalogu /mnt/router/etc)
192.168.0.2 komputer1
192.168.0.3 komputer2
192.168.0.4 komputer3
test (umieszczony w katalogu /mnt/router/packages/online)
while :; do
sleep 60
grep "^" /mnt/router/etc/hosts | while read ip name ; do
i=$( /mnt/router/packages/arp/arp $ip | grep ether)
if [ -n "`echo $i`" ] ; then
cp /mnt/router/www/on.gif /mnt/router/www/$name.gif
else
cp /mnt/router/www/off.gif /mnt/router/www/$name.gif
fi
done
done
lan.html (umieszczony w katalogu /mnt/router/www)
<table border=0 cellspacing=0 cellpadding=0><tr>
<td width=60><img src="komputer1.gif"></td>
<td width=60><img src="komputer2.gif"></td>
<td width=60><img src="komputer3.gif"></td>
</tr><tr>
<td>komputer1</td><td>komputer2</td><td>komputer3</td></tr>
</table>
Będą generowane pliki graficzne o nazwach takich, jak podane w pliku hosts. Jedno zastrzeżenie, arp nie może być używany do blokowania adresów MAC dla poszczególnych IP. (Demo
tutaj).
Kolejnym rozwiązaniem byłoby pingowanie poszczególnych komputerów i w zależności od tego czy odpowiedzą, ustawianie ich statusu jako on lub offline.
Jest jeszcze rozwiązanie cinasa, chyba nieco podobne do mojego ale generujące statusy podczas wywołania a nie co minutę. Niestety nie widziałem tego jeszcze, więc nie powiem jak je zrobić.