LINUX.ORG.RU
ФорумAdmin

мини billing :)


0

0

Есть сети:
192.168.1-3.0/24 - 3-и сети.
и роутер.
Нужно считать трафик.
Т.е. нужна простая считалка трафика с ВЭБ интерфейсом.
Весь google обрыл, ничего подходящего найти немогу.
Все что поподается слишком наворочено.
Причем нужно прозрачно считать трафик.
Т.е. все юзеры ходят в инет через NAT и никакого ppp.
Вобщем нужно чтоб для них все было прозрачно.
Просто подсчет трафика по ip или mac проходящего через роутер.

stargazer.dp.ua вэб-интерфейса нет, но он достаточно прост и виндовая админка есть....

BusTeR
()

linux
iptables+perl+apache+mysql

*bsd
pf+perl+apache+mysql

x97Rang ★★★
()

Есть неплохой наборчик скриптов sub-billing, еще раз в поисковике ткни, или в аську 475822601.

anonymous
()
21 февраля 2007 г.

Ставь себе ipcad, ищи его на sourceforge.net , затем через крон сливай дамп логов по rsh , дальше на перле парси журнал логов и формируй html-ку , например через каждый час... Я такое реализовал в Музее Политической Истории в Питере... скрипт такого вида: #!/usr/bin/perl my($filename,$ip,$rc,$srcip,$dstip,$bytes,$gl,$flag,$report,@globs,@ipbase); system("rsh localhost dump");#сливаем дамп system("date +%Y%m%d >/tmp/date"); #получаем дату (это сделано по идиотски) open(FD,"/tmp/date");$date=<FD>; chomp($date);close(FD); $filename='/tmp/ipcad.dump'; $report="/tmp/ipcad_$date.stat"; open(FS,"$report");# что набежало за сегодня @rep=<FS>; close(FS); foreach $rp(@rep){ ($ip_adr,$ip_traf)=split(/:/,$rp); chomp($ip_traf); $ipbase{$ip_adr}=$ip_traf; } open(FF,"$filename"); @dump=<FF>; close(FF); system("rsh localhost clear ip accounting"); foreach $rc(@dump){ $srcip=substr($rc,1,16); $srcip=~ s/\s//ge;#парсим откуда $dstip=substr($rc,18,16); $dstip=~ s/\s//ge;#парсим куда $bytes=substr($rc,43,12); $bytes=~ s/\s//ge;#парсим сколько в граммах ;) #$srcport=substr($rc,55,5); #$dstport=substr($rc,61,5); #$proto=substr($rc,67,5); #$Iface=substr($rc,73,8); if(substr($dstip,0,9) eq "192.168.0") #определяемся с подсеткой { #print $srcip." ".$bytes."\n" if($ipbase{$dstip}<32) {$ipbase{$dstip}=$bytes;}#если чел вообще не работал - добавим else {$ipbase{$dstip}=$ipbase{$dstip}+$bytes;}# если да -трафик вешаем } } if(-e $report){unlink($report);}#грохаем старый отчет @k=(keys %ipbase); open(FF,">$report");#формируем новый open(FO,">/var/www/index.html");#и html-ку тоже формируем print FO "<html><title>$date TRAFIC</title><body>"; print FO "<table border>"; print FO "<tr><td>IP</td><td>TRAFFIC</td></tr>&q uot;; foreach $gl(@k){ $otiu=$ipbase{$gl}; print FF $gl.":".$otiu."\n"; print FO "<tr><td>$gl</td><td>$otiu</td></tr>&qu ot; } print FO "</table><br><br>THIS TABLE IS UPDATE EVERY ONE HOUR"; print FO "<br><br>"; print FO "</body></html>"; close(FO); close(FF); # Еу вот и все... Только в crontab нужно добавить, чтоб этот скрипт выполнялся раз в час...

Ну бывай! Творческих успехов!!!

Evantarian
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.