Биллинг abills,freenibs — как перенаправить на страничку если нет денег
Допустим Вы сделали так, что бы у пользователя когда на счету нет денег не выскакивала ошибка 691, а отображалась — «У Вас нет денег, нужно пополниться!!!».
Биллинг abills,freenibs — скрипт как перенаправить на страничку если нет денег в Linux.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #!/bin/sh export CDATE=$(date "+%Y-%m-%d_%H:%M:%S") FILTERS=`/usr/bin/awk '/Filter-Id/ {print $2}' /var/run/radattr.$1` IP=`/usr/bin/awk '/Framed-IP-Address/ {print $2}' /var/run/radattr.$1` UNAME=`/usr/bin/radwho|grep $IP|awk '{print $2}'|head -n 1` USERBALANCE=$( /usr/bin/mysql -h 10.1.1.1 -uroot -p'' -B abills -e \ "SELECT SUM(users.credit + bills.deposit) FROM users \ INNER JOIN bills ON (users.uid=bills.uid) \ INNER JOIN dv_main ON (dv_main.uid=users.uid) \ WHERE users.id='$UNAME' AND dv_main.tp_id!=1" | /usr/bin/tail -n 1 ) /sbin/iptables -D FORWARD -s $IP ! -d 10.10.10.0/24 -j DROP /sbin/iptables -t nat -D PREROUTING -s $IP ! -d 10.10.10.0/24 -p tcp -m multiport --dport 80,81,82,8080,3128,443 \ -j DNAT --to-destination 10.10.10.39:80 /sbin/iptables -t nat -D PREROUTING -s $IP ! -d 10.10.10.0/24 -p tcp -m multiport --dport 80,81,82,8080,3128,443 \ -j DNAT --to-destination 10.10.10.38:3082 if [ "$FILTERS" = "no_money" ]; then echo "$CDATE User [$1] $FILTERS / $UNAME ($IP) add rules (no_money filter)" >> /var/log/no_money.log /sbin/iptables -A FORWARD -s $IP ! -d 10.10.10.0/24 -j DROP /sbin/iptables -t nat -A PREROUTING -s $IP ! -d 10.10.10.0/24 -p tcp -m multiport --dport 80,81,82,8080,3128,443 \ -j DNAT --to-destination 10.10.10.38:3082 elif [ "x$USERBALANCE" != "x" ] && [ "x$USERBALANCE" != "xNULL" ]; then # echo "$CDATE $UNAME $USERBALANCE negative" >> /var/log/no_money.log if [ "x$( /usr/bin/awk 'BEGIN { if('$USERBALANCE'<=0) print("NEGATIVE") }' )" = "xNEGATIVE" ]; then echo "$CDATE User [$1] $FILTERS / $UNAME [$IP] add rules (negative deposit $USERBALANCE)" >> /var/log/no_money.log /sbin/iptables -A FORWARD -s $IP ! -d 10.10.10.0/24 -j DROP /sbin/iptables -t nat -A PREROUTING -s $IP ! -d 10.10.10.0/24 -p tcp -m multiport --dport 80,81,82,8080,3128,443 \ -j DNAT --to-destination 10.10.10.38:3082 else echo "$CDATE User [$1] $FILTERS / $UNAME [$IP] logged in (deposit: $USERBALANCE)" >> /var/log/no_money.log fi fi |
Это интересно:
Динамическое изменение скорости: с помощью php и netgraph с генерирование скрипта для шелла
nginx 301 redirect при переезде или тупости
Здравствуйте!
А где в базе прописать Filter-ID подозреваю что в other_params и на какой версии это работает?
Как в Freenibs реализовать вход пользователей с отрицательным депозитом достаточно передать Filter-ID как у abills или нужно что то ковырять?
Спасибо вы так добры (
Я проще делал — есть поле кредит и депозит, так вот в поле кредит ставил большое значение!