есть скрипт который должен отключать и включать пользователей при достижении определённого лимита трафика, и он это делает но только
работает только с последним ip адресом стоящему последним в правиле ipteibla , а не по всему списку, подскажите где грабли.
#!/usr/local/bin/php
<?
mysql_connect("127.0.0.1","root","");
mysql_select_db("traffic");
$q ="select `lim`, `real`, `ip` from `limita` ";
$r = mysql_query($q);
$i = 0;
$n=mysql_numrows($r);
while($i<$n) {
$real = mysql_result($r,$i,"real");
$lim = mysql_result($r,$i,"lim");
$ip = mysql_result($r,$i,"ip");
// print "\n $real \t $lim \t $ip ";
print "\n $ip ";
$i++;
}
$ipt=exec("iptables -vxn -L test -Z|grep 10.10.2|awk '/10.10.2./{print $9}'|grep 10.10.2");
if ($real >$lim)
{
exec("/usr/local/sbin/iptables -D test -s $ipt -d 0.0.0.0/0 -j ACCEPT");
exec("/usr/local/sbin/iptables -D test -d $ipt -s 0.0.0.0/0 -j ACCEPT");
}
else if ($ip===$ipt)
{
print "\n есть совпадения в таблице,ничего не добавляем \t $ip";
}
else
{
exec("/usr/local/sbin/iptables -A test -s $ip -d 0.0.0.0/0 -j ACCEPT ");
exec("/usr/local/sbin/iptables -A test -d $ip -s 0.0.0.0/0 -j ACCEPT ");
print "в правиле не найден, добавление правила \t $ip";
//print"$ip";
}
mysql_close();
?>
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум php и запуск внешних программ (2004)
- Форум помогите с awk (2004)
- Форум arpwatch, iptables, mac, ip и организация конфликты ip\MAC у пользователей (2004)
- Форум помогите пожалуйста разобраться с настройкой файрвола на eth1 и eth0 (2002)
- Форум Защита от DDoS и флуда (iptables) (2014)
- Форум fwmark для локалхоста через недефолтный рут (2012)
- Форум IPcad, странное поведение. Не совпадает стаитика. Помогите! (2010)
- Форум 2 wan routing HELP (2009)
- Форум загрузка узера (2005)
- Форум SQUID ограничение времени для узера (2004)