Мониторинг активных VPN подключений

Технические вопросы по UTM 5.0
Ответить
Аватара пользователя
торопыга
Сообщения: 61
Зарегистрирован: Пн ноя 01, 2010 12:06

Мониторинг активных VPN подключений

Сообщение торопыга »

Подскажите, как бы снимать статистику по активным vpn-подключениям. Пробовал код PHPшный отсюда viewtopic.php?p=54635 , с базой коннектится , но отображается коряво и только табличка пустая. Может у кого есть наработки, поделитесь если не жалко.

xoma
Сообщения: 23
Зарегистрирован: Чт ноя 15, 2007 10:47

Re: Мониторинг активных VPN подключений

Сообщение xoma »

торопыга писал(а):Подскажите, как бы снимать статистику по активным vpn-подключениям. Пробовал код PHPшный отсюда viewtopic.php?p=54635 , с базой коннектится , но отображается коряво и только табличка пустая. Может у кого есть наработки, поделитесь если не жалко.
config.php

Код: Выделить всё

<?php

$db_connect=mysql_connect&#40;"localhost", "utm", "billing"&#41; or die &#40;"Connect failed."&#41;;
$db_coonect=mysql_select_db&#40;"UTM5"&#41; or die &#40;"Fatal database query 'USE' error"&#41;;

$adminlogin='login';
$adminpass='pass';
$corehost='127.0.0.1';
$coreport='11758';

$user_ip=$_SERVER&#91;REMOTE_ADDR&#93;;

?>
index.php

Код: Выделить всё

<?
include &#40;'config.php'&#41;;
#&#123; font-family&#58; Verdana, Arial, Helvetica, sans-serif; &#125;
?>
<HTML>
<HEAD>

<style type="text/css">
&#123;FONT-SIZE&#58; 8px;&#125;
TH &#123;font-family&#58; Calibri, Times new roman, Arial,  sans-serif;&#125;

TD
&#123;margin-top&#58;0cm;
margin-right&#58;0cm;
margin-bottom&#58;10.0pt;
margin-left&#58;0cm;
line-height&#58;115%;
font-size&#58;11.0pt;
font-family&#58;"Calibri","sans-serif";&#125;

A&#58;link &#123; COLOR&#58; #003366; TEXT-DECORATION&#58; none  &#125;
A&#58;visited &#123; COLOR&#58; #003366; TEXT-DECORATION&#58; none &#125;
A&#58;active &#123; COLOR&#58; #000099; TEXT-DECORATION&#58; none &#125;
A&#58;hover &#123;COLOR&#58; #000000; TEXT-DECORATION&#58; underline&#125;
Body &#123; background-color&#58;#e1e1e1; color&#58;#000000 &#125;
</style>


<TITLE>&#58;&#58;OnLine</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="refresh" content='60'>

</HEAD>

<BODY BGCOLOR="#000000" LINK=blue VLINK=blue VLINK=blue>

<?

function format_time&#40;$sec&#41;
&#123;
    $a = array&#40;
    86400    => 'дн.', // количество секунд в сутках
    3600     => 'ч.', // количество секунд в часе
    60        => 'мин.', // количество секунд в минуте
    1        => 'сек.' // количество секунд в секунде
    &#41;;
    $out = '';
    foreach &#40;$a as $k=>$v&#41; &#123;
    $tmp = floor&#40;$sec/$k&#41;;
    $out .= &#40;$tmp?$tmp.$v.' '&#58;''&#41;;
    $sec -= $tmp*$k;
    &#125;
    return $out;
    &#125;
function sectime&#40;$stri,$tota&#41; &#123;

$hour=$tota / 3600; settype&#40;$hour,integer&#41;; $rel=ereg_replace&#40;"h","$hour",$stri&#41;;
$min=$tota % 3600 / 60; settype&#40;$min,integer&#41;; if &#40;$min<10&#41; $min="0$min"; $rel=ereg_replace&#40;"m","$min",$rel&#41;;
$sec=$tota % 3600 % 60; settype&#40;$sec,integer&#41;; if &#40;$sec<10&#41; $sec="0$sec"; $rel=ereg_replace&#40;"s","$sec",$rel&#41;;
return&#40;$rel&#41;;
&#125;//sectime

$result = mysql_query &#40;"select account_id,
User_Name,
Acct_Input_Octets,
Acct_Output_Octets,
NAS_Id,
NAS_Port,
&#40;CONCAT_WS&#40;'.',SUBSTRING_INDEX&#40;INET_NTOA&#40;Framed_IP_Address&0xFFFFFFFF&#41;,'.',-1&#41;,
SUBSTRING_INDEX&#40;SUBSTRING_INDEX&#40;INET_NTOA&#40;Framed_IP_Address&0xFFFFFFFF&#41;,'.',-2&#41;,'.',1&#41;,
SUBSTRING_INDEX&#40;SUBSTRING_INDEX&#40;INET_NTOA&#40;Framed_IP_Address&0xFFFFFFFF&#41;,'.',2&#41;,'.',-1&#41;,
SUBSTRING_INDEX&#40;INET_NTOA&#40;Framed_IP_Address&0xFFFFFFFF&#41;,'.',1&#41;&#41;&#41; as fr_ip,
Acct_Session_Time,
Calling_Station_Id,
recv_date from dhs_sessions_log
where Acct_Status_Type=1 or Acct_Status_Type=3"&#41;or die&#40;"online_list.php -> err1 ".mysql_error&#40;$LINK&#41;&#41;; //desc
$count=mysql_num_rows &#40;$result&#41;;
?>

<TABLE align=center BORDER=0 CELLSPACING=1 CELLPADDING=4 BGCOLOR=#808080>
<TR BGCOLOR="#e1e1e1" ALIGN=center><TD COLSPAN="9"><FONT color=#000000><b>Online&#58; <?echo $count;?></b></TD></TR>
<TR BGCOLOR="#c0c0c0" ALIGN=center>
<TH><FONT color=#000000 font-family=Calibri>N</TH>
<TH><FONT color=#000000 font face="Calibri">Пользователь</TH>
<TH><FONT color=#000000>Подключился</TH>
<TH><FONT color=#000000>Время</TH>
<TH><FONT color=#000000>Послал</TH>
<TH><FONT color=#000000>Принял</TH>
<TH><FONT color=#000000>IP</TH>
<TH><FONT color=#000000>Call from</TH>
<TH><FONT color=#000000>NAS</TH>
</TR>
<?
for &#40;$i = 0; $i < mysql_num_rows &#40;$result&#41;; $i++&#41; &#123;
$row = mysql_fetch_object &#40;$result&#41;;
if &#40;$i%2 == 0&#41; $col ='e1e1e1';
if &#40;$i%2 != 0&#41; $col ='ffffff';
echo" <TR BGCOLOR=#".$col.">\n";
printf &#40;"  <TD ALIGN=center>%s</TD>\n", $i+1&#41;;
printf &#40;"  <TD ALIGN=center><B>%s</A></B></TD>\n", $row->User_Name&#41;;
$time_new=date&#40;"d.m.Y H&#58;i&#58;s",$row->recv_date&#41;;
printf &#40;"  <TD ALIGN=center><font size=-1>%s</font></TD>\n", $time_new&#41;;
$ttime = sectime&#40;'h&#58;m&#58;s', $row->Acct_Session_Time&#41;;
printf &#40;"  <TD ALIGN=center>%s</TD>\n", $ttime&#41;;
printf &#40;"  <TD ALIGN=center>%.1f</TD>\n", $row->Acct_Input_Octets/1024/1024&#41;;
printf &#40;"  <TD ALIGN=center><b>%.1f</TD>\n", $row->Acct_Output_Octets/1024/1024&#41;;
printf &#40;"  <TD ALIGN=left>%s</TD>\n", &#40;$row->fr_ip&#41;&#41;;
printf &#40;"  <TD ALIGN=left>%s</TD>\n", $row->Calling_Station_Id&#41;;
#printf &#40;"  <TD ALIGN=CENTER>%s&#58;%s</TD>", $row->NAS_Id,$row->NAS_Port&#41;;
printf &#40;"  <TD ALIGN=left>%s</TD>", $row->NAS_Port&#41;;
echo "</TR>\n";
 &#125;

mysql_free_result &#40;$result&#41;;
 ?>
</TABLE>

Аватара пользователя
торопыга
Сообщения: 61
Зарегистрирован: Пн ноя 01, 2010 12:06

Сообщение торопыга »

За код спасибо, только у меня не пашет. Как и с первым кодом , на странице отображается половина кода в текстовом виде и ниже таблица , с кракозябрами вместо значений.

Mikhail
Сообщения: 223
Зарегистрирован: Ср июл 27, 2005 06:25

Сообщение Mikhail »

торопыга, а Apache с поддержкой PHP скомпилирован-то?

Аватара пользователя
kamae1ka
Сообщения: 142
Зарегистрирован: Пн окт 04, 2010 05:14

Сообщение kamae1ka »

для начала изучи php

Аватара пользователя
торопыга
Сообщения: 61
Зарегистрирован: Пн ноя 01, 2010 12:06

Сообщение торопыга »

Mikhail писал(а):торопыга, а Apache с поддержкой PHP скомпилирован-то?
Да, на тачке висит сайт внутрилокальный,Cacti,Nagios,Mantis и еще по-мелочи.

Аватара пользователя
торопыга
Сообщения: 61
Зарегистрирован: Пн ноя 01, 2010 12:06

Сообщение торопыга »

kamae1ka писал(а):для начала изучи php
Плюсадын, хороший ответ.Знал бы PHP, не спрашивал :wink:

Аватара пользователя
kamae1ka
Сообщения: 142
Зарегистрирован: Пн окт 04, 2010 05:14

Сообщение kamae1ka »

сделай вывод исход текста HTML

да и попробуй вот так -

Код: Выделить всё

<?
include &#40;'config.php'&#41;;
#&#123; font-family&#58; Verdana, Arial, Helvetica, sans-serif; &#125;
?>
замени на

Код: Выделить всё

<?php
include &#40;'config.php'&#41;;
#&#123; font-family&#58; Verdana, Arial, Helvetica, sans-serif; &#125;
?>  

и проверь - все ли фреймы закрыты ?

пример

Код: Выделить всё

<HTML>
<HEAD>
hello
</HEAD>
</HTML>

а если быть реально серьезным - напиши свой....

тебе надо сделать просмотр активных vpn список или кол-во ? если первое то используй (если мпд) 5006 порт.... если кол-во пиши скрипт для Cacti

Аватара пользователя
торопыга
Сообщения: 61
Зарегистрирован: Пн ноя 01, 2010 12:06

Сообщение торопыга »

kamae1ka Спасибо за ценный совет. Интересовало исключительно количество клиентов, написал пару простеньких скриптов и прикрутил к "кактусу" , большего и не требовалось. Подробную статистику можно и в web-интерфейсе MPD посмотреть. Всем спасибо.

Ответить