Po 20-tym polecenie
f_zaplac komputer [on]#
# Przekierowanie pakietów z podanego IP na port servera 82.
# w celu wyświetlenia wezwania.
#
blokuj() {
if [ "$2" ];then
par="-i"
else
par="-d"
fi
# $1 oznacza IP lub nazwe kompa
ipfwadm -I $par accept -b -S $1 -P tcp -r 82 2>/dev/null
}
if [ $1 ]; then
blokuj $1
if [ $2 ]; then
blokuj $1 $2
echo "Zablokowano do zapłaty $1"
else
echo "Odblokowano po zapłacie $1"
fi
else
echo "Brak IP lub nazwy komputera"
fi
Niestety dla każdego komputera, dlatego można sobie zrobić listę spóźnialskich, będzie wybiórczo a nie dla każdego
Odwołanie na stronie wezwania, link do procedurki cgi
unblock.cgi#!/bin/sh
D=`date`
C=`echo $HTTP_REFERER | sed 's.\/\/.@.;s.\/.:82.;s.@.\/\/.'`
cat <<-!
Content-type: text/html
<html><body bgcolor=#FFFFE0><center>
<meta http-equiv='content-type' content='text/html; charset=iso-8859-2'>
<table border=1><tr><td>
<font face=system><blockquote>
<br>FREESCO $D - odblokowanie dostępu po deklaracji zapłaty<p>
!
echo " Twoj adres to '$REMOTE_ADDR' i niniejszym zadeklarowałeś "
echo " bezzwłoczne uregulownie zaległości <p><h2>"
/rc/f_zaplac $REMOTE_ADDR
echo "<br> ... zatem, czekam na kasę :-)</h2><p>"
echo "Administrator<p>"
echo "$D - $REMOTE_ADDR">>unblock.txt
# End
dodatkowo w pliku
unblock.txt zostanie zapisana informacja o czasie ściągnięcia blokady i numerze IP.
Zrobiłem to na porcie 82 zamiast administracji (która jest nieco przesunięta), żeby nie było problemów z uprawnieniami.
Można też dodać drugiego linka do
unblock2.cgi gdzie odblokowują się osoby które zapłaciły, a forsa jeszcze nie dotarła (skarbnik zasłab, przelew poczta zawieruszyła).
