Мониторинг активных VPN подключений
Мониторинг активных VPN подключений
Подскажите, как бы снимать статистику по активным vpn-подключениям. Пробовал код PHPшный отсюда viewtopic.php?p=54635 , с базой коннектится , но отображается коряво и только табличка пустая. Может у кого есть наработки, поделитесь если не жалко.
Re: Мониторинг активных VPN подключений
config.phpторопыга писал(а):Подскажите, как бы снимать статистику по активным vpn-подключениям. Пробовал код PHPшный отсюда viewtopic.php?p=54635 , с базой коннектится , но отображается коряво и только табличка пустая. Может у кого есть наработки, поделитесь если не жалко.
Код: Выделить всё
<?php
$db_connect=mysql_connect("localhost", "utm", "billing") or die ("Connect failed.");
$db_coonect=mysql_select_db("UTM5") or die ("Fatal database query 'USE' error");
$adminlogin='login';
$adminpass='pass';
$corehost='127.0.0.1';
$coreport='11758';
$user_ip=$_SERVER[REMOTE_ADDR];
?>
Код: Выделить всё
<?
include ('config.php');
#{ font-family: Verdana, Arial, Helvetica, sans-serif; }
?>
<HTML>
<HEAD>
<style type="text/css">
{FONT-SIZE: 8px;}
TH {font-family: Calibri, Times new roman, Arial, sans-serif;}
TD
{margin-top:0cm;
margin-right:0cm;
margin-bottom:10.0pt;
margin-left:0cm;
line-height:115%;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
A:link { COLOR: #003366; TEXT-DECORATION: none }
A:visited { COLOR: #003366; TEXT-DECORATION: none }
A:active { COLOR: #000099; TEXT-DECORATION: none }
A:hover {COLOR: #000000; TEXT-DECORATION: underline}
Body { background-color:#e1e1e1; color:#000000 }
</style>
<TITLE>::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($sec)
{
$a = array(
86400 => 'дн.', // количество секунд в сутках
3600 => 'ч.', // количество секунд в часе
60 => 'мин.', // количество секунд в минуте
1 => 'сек.' // количество секунд в секунде
);
$out = '';
foreach ($a as $k=>$v) {
$tmp = floor($sec/$k);
$out .= ($tmp?$tmp.$v.' ':'');
$sec -= $tmp*$k;
}
return $out;
}
function sectime($stri,$tota) {
$hour=$tota / 3600; settype($hour,integer); $rel=ereg_replace("h","$hour",$stri);
$min=$tota % 3600 / 60; settype($min,integer); if ($min<10) $min="0$min"; $rel=ereg_replace("m","$min",$rel);
$sec=$tota % 3600 % 60; settype($sec,integer); if ($sec<10) $sec="0$sec"; $rel=ereg_replace("s","$sec",$rel);
return($rel);
}//sectime
$result = mysql_query ("select account_id,
User_Name,
Acct_Input_Octets,
Acct_Output_Octets,
NAS_Id,
NAS_Port,
(CONCAT_WS('.',SUBSTRING_INDEX(INET_NTOA(Framed_IP_Address&0xFFFFFFFF),'.',-1),
SUBSTRING_INDEX(SUBSTRING_INDEX(INET_NTOA(Framed_IP_Address&0xFFFFFFFF),'.',-2),'.',1),
SUBSTRING_INDEX(SUBSTRING_INDEX(INET_NTOA(Framed_IP_Address&0xFFFFFFFF),'.',2),'.',-1),
SUBSTRING_INDEX(INET_NTOA(Framed_IP_Address&0xFFFFFFFF),'.',1))) 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")or die("online_list.php -> err1 ".mysql_error($LINK)); //desc
$count=mysql_num_rows ($result);
?>
<TABLE align=center BORDER=0 CELLSPACING=1 CELLPADDING=4 BGCOLOR=#808080>
<TR BGCOLOR="#e1e1e1" ALIGN=center><TD COLSPAN="9"><FONT color=#000000><b>Online: <?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 ($i = 0; $i < mysql_num_rows ($result); $i++) {
$row = mysql_fetch_object ($result);
if ($i%2 == 0) $col ='e1e1e1';
if ($i%2 != 0) $col ='ffffff';
echo" <TR BGCOLOR=#".$col.">\n";
printf (" <TD ALIGN=center>%s</TD>\n", $i+1);
printf (" <TD ALIGN=center><B>%s</A></B></TD>\n", $row->User_Name);
$time_new=date("d.m.Y H:i:s",$row->recv_date);
printf (" <TD ALIGN=center><font size=-1>%s</font></TD>\n", $time_new);
$ttime = sectime('h:m:s', $row->Acct_Session_Time);
printf (" <TD ALIGN=center>%s</TD>\n", $ttime);
printf (" <TD ALIGN=center>%.1f</TD>\n", $row->Acct_Input_Octets/1024/1024);
printf (" <TD ALIGN=center><b>%.1f</TD>\n", $row->Acct_Output_Octets/1024/1024);
printf (" <TD ALIGN=left>%s</TD>\n", ($row->fr_ip));
printf (" <TD ALIGN=left>%s</TD>\n", $row->Calling_Station_Id);
#printf (" <TD ALIGN=CENTER>%s:%s</TD>", $row->NAS_Id,$row->NAS_Port);
printf (" <TD ALIGN=left>%s</TD>", $row->NAS_Port);
echo "</TR>\n";
}
mysql_free_result ($result);
?>
</TABLE>
сделай вывод исход текста HTML
да и попробуй вот так -
замени на
и проверь - все ли фреймы закрыты ?
пример
а если быть реально серьезным - напиши свой....
тебе надо сделать просмотр активных vpn список или кол-во ? если первое то используй (если мпд) 5006 порт.... если кол-во пиши скрипт для Cacti
да и попробуй вот так -
Код: Выделить всё
<?
include ('config.php');
#{ font-family: Verdana, Arial, Helvetica, sans-serif; }
?>
Код: Выделить всё
<?php
include ('config.php');
#{ font-family: Verdana, Arial, Helvetica, sans-serif; }
?>
и проверь - все ли фреймы закрыты ?
пример
Код: Выделить всё
<HTML>
<HEAD>
hello
</HEAD>
</HTML>
а если быть реально серьезным - напиши свой....
тебе надо сделать просмотр активных vpn список или кол-во ? если первое то используй (если мпд) 5006 порт.... если кол-во пиши скрипт для Cacti