Jump to content

Web-интерфейс для Старгайзера


Recommended Posts

  • Replies 214
  • Created
  • Last Reply

Top Posters In This Topic

добавить

function okrugl($var){

return money_format('%.2n', $var);// number_format($var, 2, ',', ' ');

}

 

function byte2mbyte($var){

return number_format($var/1024/1024, 2, ',', ' ');

}

 

исправить

$out = str_replace("% cash %", substr($dw[0],5,20)." Грн", $out);

на

$out = str_replace("% cash %", okrugl(substr($dw[0],5,20))." Грн", $out);

------

исправить

$out = str_replace("% in_nigth %", $in_sum_nigth, $out);

$out = str_replace("% out_nigth %", $out_sum_nigth, $out);

$out = str_replace("% cash_nigth %", $cash_sum_nigth, $out);

 

$out = str_replace("% in_day %", $in_sum_day, $out);

$out = str_replace("% out_day %", $out_sum_day, $out);

$out = str_replace("% cash_day %", $cash_sum_day, $out);

на

$out = str_replace("% in_nigth %", byte2mbyte($in_sum_nigth), $out);

$out = str_replace("% out_nigth %", byte2mbyte($out_sum_nigth), $out);

$out = str_replace("% cash_nigth %", okrugl($cash_sum_nigth), $out);

 

$out = str_replace("% in_day %", byte2mbyte($in_sum_day), $out);

$out = str_replace("% out_day %", byte2mbyte($out_sum_day), $out);

$out = str_replace("% cash_day %", okrugl($cash_sum_day), $out);

по поводу паролей

да читать не безопасно

есть вариант конечно сделать через .htpasswd

но забивать всех юзеров гемор

или через базу

забить пользователей скриптом

а потом читать.

если есть еще какие то идеи готов выслушать если что пишите в асю

107108905

Link to post
Share on other sites

дополнение

}elseif($mode=="stat"){

$data=file_get_contents ("/var/stargazer/users/".$logged_user."/detail_stat/".$year."/".$month."/".$day);
$keywords = preg_split ("/->[\s]+/", $data);
   unset($data);
$i=0;
$in_sum=0;
$out_sum=0;
$cash_sum=0;
while ($i<>sizeof($keywords)){
if (strlen($keywords[$i])>20){
   $keywords[$i]=str_replace("  "," ",$keywords[$i]);
   preg_match_all ("/\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\s+\d\s+\d{1,10}\s+\d{1,10}\s+\d{1,3}.\d{1,10}/",$keywords[$i], $dw
);
   $j=0;

while ($j<>(sizeof($dw[0]))){
   list($ip,$dir,$in,$out,$cash)=preg_split ("/[\s]+/",$dw[0][$j]);
$in_sum=$in_sum+$in;
$out_sum=$out_sum+$out;
$cash_sum=$cash_sum+$cash;
switch ($dir) {
   case 0:
       $dir="Internet";
       break;
   case 1:
       $dir="Mail";
       break;
           }
   $data_out .= "<tr align=\"center\"><th>".substr($keywords[$i],0,19) ."</th><td>".$ip." </td><td>".$dir." </td><td>".
$in."</td><td>".$out./*"</td><td>".$cash.*/"</td></tr>";
   $j++;
   }
}
$i++;
}
$out=file_get_contents("template/det.tpl");
$data_out .= "<tr align=\"center\"><th>-</th><td>-</td><td>-</td><td><b>".byte2mbyte($in_sum)."</b></td><td><b>".byte2mb
yte($out_sum)."</b></td></tr>";
$out = str_replace("% data %", $data_out, $out);
   $out = str_replace("% exit %", "<a href=\"exit.php\">Exit</a>", $out);
echo $out;
}elseif ($mode=="log"){
   $fileName  = ("/var/stargazer/users/".$logged_user."/stat.".$year.".".$month);
   $fcontents =  file_get_contents( $fileName);
   unset($fileName);
   $out=file_get_contents("./template/stat.tpl");
   preg_match_all ("/[DU].=\(?\d{3,9}\)? /x",$fcontents, $dw);
   $i=0;
   while ($i<>4){
       $dw[0][$i]=substr(substr($dw[0][$i],3,15)/1024/1024,0,7);
       $i++;
       }
   $out = str_replace("% user %", $logged_user." ".$year."/".$month, $out);
   $out = str_replace("% down-inet %", $dw[0][0]." Mb", $out);
   $out = str_replace("% up-inet %", $dw[0][1]." Mb", $out);
   $out = str_replace("% down-mail %", $dw[0][2]." Mb", $out);
   $out = str_replace("% up-mail %", $dw[0][3]." Mb", $out);
   preg_match("/Cash=[\d]+/",$fcontents, $dw);
   /*(?\d{0,9}.\d{0,9}\)? /x*/


   $out = str_replace("% cash %", /*substr($dw[0],5,20)." Grn"*/ "Contact whis admin", $out);
   $out = str_replace("% exit %", "<a href=\"exit.php\">Exit</a>", $out);
   echo $out;
}

http://192.168.6.1/stat/secretplace.php?mo...month=07&day=28 - статистика по дням

http://192.168.6.1/stat/secretplace.php?mo...r=2005&month=07

статистика за прошлый мес

думаю куда что тулиь и как прикрутить веб морду сами разберетесь

Link to post
Share on other sites
я сотрю по правилам фаервола...

если такой-то ип присутствует значит онлайн елс офлайн... :)

БСД 5.1

ипфв2

а как из апача (php) посмотреть правила фаервола? что-то я совсем туплю....

ASPLinux 9.2, iptables

 

может проще в скрипты онконнект/ондисконект, добавить строчку которя будет у юзеров в папке создавать файл к примеру connected и туда будет записывать "1" а при дисконекте "0" а в php проветять содержимое этого файла???

 

так у себя и сделал токашо :(

OnConnect

...
login=$1
echo "1" > /var/stargazer/users/$login/connected
...

 

OnDisconnect

...
login=$1
echo "0" > /var/stargazer/users/$login/connected
...

Link to post
Share on other sites
я сотрю по правилам фаервола...

если такой-то ип присутствует значит онлайн елс офлайн... :)

БСД 5.1

ипфв2

а как из апача (php) посмотреть правила фаервола? что-то я совсем туплю....

ASPLinux 9.2, iptables

 

может проще в скрипты онконнект/ондисконект, добавить строчку которя будет у юзеров в папке создавать файл к примеру connected и туда будет записывать "1" а при дисконекте "0" а в php проветять содержимое этого файла???

 

так у себя и сделал токашо :(

OnConnect

...
login=$1
echo "1" > /var/stargazer/users/$login/connected
...

 

OnDisconnect

...
login=$1
echo "0" > /var/stargazer/users/$login/connected
...

<?

$d=shell_exec("iptables -L -n");

echo $d;

?>

Link to post
Share on other sites
  • 1 month later...

а подскажите вопрос с Zend,

вроде все установил как надо, засунул эту статистику, токо вот оно говорит что страница не найдена.

т.е. есть допустим sms.php закомпиленная зендом, говорит что не найдена. в этой же папке sms2.php в открытом пхп, все пашет :-/

Link to post
Share on other sites

Фух... Вернулся я с армии :( Теперь буду младшим лейтенантом.

Заметил тут баг за собой

Файлы <домашний каталог юзера стг>\conf парсятся с помощью ф-ии parse_ini_file()

следственно избегайте (пока не перепишу скрипт :( ) символов !? и других в полях данных юзера.

А то эрроры как-то не красиво смотрятся в экране юзеров :(

P.S.: Аськи пока временно нету, зато есть Джаббер zentavr@jabber.zp.ua

Link to post
Share on other sites

новая фича для админки кто на связи :(

создаем базу данных в мускуле

mysql

в нем вводим

create database stat;

потом вставляем туда

DROP TABLE IF EXISTS `online`;

CREATE TABLE IF NOT EXISTS `online` (

`id` bigint(20) NOT NULL auto_increment,

`login` varchar(10) NOT NULL default '',

`status` smallint(6) NOT NULL default '0',

`ip` varchar(15) NOT NULL default '',

`mac` varchar(17) NOT NULL default '',

`date` datetime NOT NULL default '0000-00-00 00:00:00',

UNIQUE KEY `login` (`login`),

KEY `id` (`id`)

) TYPE=MyISAM AUTO_INCREMENT=5555 ;

\q

далее

в скрипт OnConnect

в конец вставляем строки

mac="` arp -a | grep "$2" | cut -d " " -f4|cut -d " " -f1`"

date=`date +%Y-%m-%d\ %H:%M:%S`

mysql stat -uЛОГИН -pПАРОЛЬ -e 'UPDATE `online` SET `status` = "1",`ip`="'$2'",`mac`="'$mac'",`date` ='"'$date'"' WHERE `login`

mac="empty"

в OnDissconnect

mysql stat -uЛОГИН -pПАРОЛЬ -e 'UPDATE `online` SET `status` = "0" WHERE `login` = "'$1'" LIMIT 1'

далее создаем файл

touch online.php

в него пишем

echo "<a href=dir.php>Статистика</a><br>\n";

echo "<a href=dir1.php>Статистика день ночь</a><br>\n";

echo "<a href=gencard.php>Сгенерировать партию карточек</a><br>\n";

mysql_connect('localhost',dblogin,dbpass);

mysql_select_db('stat');

$res=mysql_query("SELECT `online`.`login` , `online`.`ip` , `online`.`mac`, `group`.`group_id`, `online`.`date` FROM `group` , `online` WHERE `online`.`login` = `group`.`user` and `status` =1 ORDER BY `group`.`group_id`,`online`.`login` ASC

");

 

echo "<table>";

while ($row = mysql_fetch_array($res)) {

echo "<tr><td>".$row[0]."</td>"; //login

echo "<td>".$row[1]." - ".$row[2]."</td>"; //ip - mac

echo "<td>".$row[3]."</td>"; //group

echo "<td>".$row[4]."</td>"; //date

echo "<td>OnLine</td></tr>\n"; //

}

echo "</table>";

mysql_free_result($res);

 

?>

перегружаем старгейзер и любуемся кто же у нас работает

жду ваших коментариев и предложений

да и еще в OnConnect можно еще сделать привязку по маку помоему так --mac $mac

Link to post
Share on other sites

добовление существующих пользователей в базу

online2sql.php

<?

mysql_connect('localhost','login','pass');

mysql_select_db('stat');

 

$d = dir("/var/stargazer/users");

while (false !== ($entry = $d->read())) {

if (($entry[0]<>".")){

mysql_query("INSERT INTO `online` (`login` , `status` ) VALUES ('".$entry."', '0');") or die ("Invalid query ");

}

}

$d->close;

mysql_close();

?>

Link to post
Share on other sites
  • 1 month later...

А можна полную сборочку файла. чтоб по всем страницам не лазить и не править то что уже подправлено. Дайте кто нить просто полную сборку

Link to post
Share on other sites
  • 1 month later...
минуточку! здесь поподробнее... что это еще за ключик?

 

ЗЫ: сорьки, неасилил проста читать сначало

Скрипты шифрованы Zend-Оптимайзером с поддержкой лицензии

Link to post
Share on other sites
минуточку! здесь поподробнее... что это еще за ключик?

 

ЗЫ: сорьки, неасилил проста читать сначало

Скрипты шифрованы Zend-Оптимайзером с поддержкой лицензии

так а сами скрипты где взять?

Link to post
Share on other sites

Че-то большая ПОПА с ключиком :) перепробовал разные варианты апач говорит ........ PHP Warning: License check failed! in /var/www/.......

че ему еще нада? вроде положил его и прямо в корень директории со скриптами вебинтерфейса и в /etc/Zend/zend.lic/

плиз хелп :bue:

ЗЫ to Zentavr - как там с исходниками :loop: не поделишься а то много че хотелось бы прикрутить и че с графиками так и не доделал :)

Link to post
Share on other sites
  • 2 weeks later...

Пиплы так что никто не поможет с ключиком то - трабла серьезная ведь :( как заставить его работать - а то апач упорно пишет PHP Warning: License check failed! in /var/www/......

Link to post
Share on other sites
  • 3 weeks later...

Последняя версия.. Не требует ключей

http://rapidshare.de/files/11614618/stg-20060123.tgz.html

Исправлена совместимость с PHP 5

Переписана функция парсинга конфигов

Добавлена возможность определения траффика по направлению (город или всё остальное)

Edited by Andrey Zentavr
Link to post
Share on other sites

Есть вопрос.

Поставил зенд (2.6.0), прописал его в php.ini (php 4.x) в описании модулей, перезапустил апач (1.3.хх).

А он как писал "Zend Optimizer not installed", так и пишет.

Как я вижу, там вызывается функция @Zend;

Функция phpinfo(); zend находит, пишет о нем.

У меня php в апаче реализован в виде mod_php.

Подскажите пожалуйста, куда смотреть.

 

Версия админки последняя.

Link to post
Share on other sites
Поставил зенд (2.6.0), прописал его в php.ini (php 4.x) в описании модулей, перезапустил апач (1.3.хх).

Странно, я когда ставил зенд, он у меня сам конфиг пхп переписал. У тебя какой то не правильный зенд.

Link to post
Share on other sites

Ось FreeBSD 5.1.

Zend ставил из портов

make

make install

После инсталла там и было написано, что надо добавить строки в php.ini.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...