Idąc tym tropem - tak. Cóż, moje dzieciaki, to de facto 1szt. z potencjalnie trzema (o zgrozo!) klientami, pc/tablet/telefon.
Stąd zliczanie dla wszystkich urządzeń równocześnie, bo zdarza się, że i w dwa na raz jest 'bęnione'. Więcej dzieciaków to przykładowo przez rozwinięcie niżej przytoczonego pomysłu więcej osobnych plików z przypisanemu każdemu MAC adresami i osobne przebiegi sprawdzające dla każdego z plików, żeby nie było 'wszyscy za jednego'.
Wracając zatem do sposobu na przekierowanie na stronę, to dodatkowo:
- mam dodatkowy katalog ze 'stroną', na którą trafiają banici, np. /limbo/index.html
- w rc.local instrukcję, aby po restarcie tworzyć pusty licznik i tę drugą instancję www
echo 0 > /tmp/timefile #ewentualnie potrzebne osobne dla każdej pociechy
httpd_gargoyle -p 88 -d /limbo -PNF index.html
- w cronie sprawdzenie co minutę oraz zerowanie licznika tuż po północy ze zdjęciem ewentualnie nałożonej blokady
*/1 * * * * /sbin/dzieciaki_counter.sh
1 0 * * * cat /tmp/timefile > /tmp/timefile.old; echo 0 > /tmp/timefile; /sbin/dzieciaki_limit.sh unlock
"Ten" moment w pliku /sbin/dzieciaki_counter.sh, w którym po osiągnięciu limitu następuje przekierowanie, to wywołanie /sbin/dzieciaki_limit z argumentem lock
if [ $USEDTIME -gt $LIMIT ]; then
[ -e /tmp/dzieciaki.lock ] || /sbin/dzieciaki_limit.sh lock
fi
aż wreszcie sam /sbin/dzieciaki_limit.sh
#!/bin/sh
case "$1" in
lock)
[ -e /tmp/dzieciaki.lock ] && return
touch /tmp/dzieciaki.lock
iptables -A PREROUTING -t nat -s IP_PRZYPISANE_DO_MAC -p tcp --dport 1:65535 -j DNAT --to 192.168.1.1:88
;;
unlock)
[ -e /tmp/dzieciaki.lock ] || return
rm /tmp/dzieciaki.lock
iptables -D PREROUTING -t nat -s IP_PRZYPISANE_DO_MAC -p tcp --dport 1:65535 -j DNAT --to 192.168.1.1:88
;;
esac
Przekierowanie jak widać dla konkretnego IP wedle konfiguracji w zakładce DHCP - statycznie przypisanych adresów IP do MAC.
Całość to zlepek fragmentów rozmaitych koncepcji zaczerpniętych głównie z tutejszego forum.