Уважаемые ...
вобщем ... поставил вебморду ... и настроил все, как написано в статье http://www.lissyara.su/?id=1017
у меня оч проблематично с SQL ... оч хотеел попросить Вас - помогите переделать запросы этого скрипта так, чтобы скрипт подскитывал ... по другому.
у меня есть сервер. на нем есть 1 интерфейс, а на нем 5 айпи адресов алиасами висят.
так вот меня интересует подсчет трафика по каждому из этих 5 айпи адресов, и общий за месяц. то есть меня не интересует, куда, по каким портам.
нужно лишь получить результат ... в виде
1. айпи 1 наработал 2 мегабайта
2. айпи 2 наработал 383 мегабайта
и т.д.
соответственно в конце месяца в сумме.
сейчас у меня вот такая каша
Код: Выделить всё
<?php
// IP хостов, интерфейсы,
$ip_out_servera = "216.11.11.16"; // внешний IP сервака
//$ip_internal_servera = "127.0.0.1"; // внутренний IP сервака
$IF_out_servera = "bge0"; // название внешнего интерфейса сервака
//$IF_internal_servera = "lo0"; // название внутреннего интерфейса сервака
//$lan_mask = ".."; // маска по которой выбираются IP для подсчёта
//Пароли для подключения к MySQL
$db_host = "localhost";
$db_user = "de11_traffic";
$db_passwd = "1111111";
$db_db = "de11_traffic";
//Пытаемся приконнектится к БД
$users = array (
'127.0.0.1' => 'username',
'192.168.0.255' => 'broadcast'
);
if(!mysql_connect($db_host,$db_user,$db_passwd))
{
echo "<br><br><BIG><CENTER>
Не могу прислюнявиться к MySQL-серванту!</CENTER></BIG>";
exit;
}
//Выбираем базу данных
mysql_select_db($db_db);
// определяем текущий месяц, и прошлый месяц - для вывода статистики
//$curr_month = date(Y,time()) . "-" . date(m,time());
//$old_month = date(Y,time()) . "-" . date('m',strtotime("-1 month"));
$curr_month_num = date(m,time());
$curr_year_num = date(Y,time());
$curr_month = $curr_year_num . "-" . $curr_month_num;
$previous_month_num = $curr_month_num - 1;
$previous_year_num = $curr_year_num;
if ($previous_month_num < 1)
{
$previous_month_num = 12;
$previous_year_num = $previous_year_num - 1;
}
if ($previous_month_num < 10)
{
$previous_month_num = "0" . $previous_month_num;
}
$old_month = $previous_year_num . "-" . $previous_month_num;
// строим HTML страничку:
?>
<HEAD>
<title>Страница статистики</title>
<meta http-equiv="Content-Type"
content="text/html; charset=koi8-r">
<STYLE type="text/css">
main_table .hilightoff {BACKGROUND: white}
main_table .hilighton {BACKGROUND: #ccbbff}
cheresstrochnaya_table .hilightoff {BACKGROUND: #88ff88}
cheresstrochnaya_table .hilighton {BACKGROUND: #ccbbff}
</STYLE>
<BODY>
<BIG><CENTER>СТАТИСТИКА ИНТЕРНЕТА</CENTER></BIG><br><br>
<TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
<TBODY>
<TR>
<TD width="50%" align="center" valign="top">
<TABLE border="1" cellspacing="0" cellpadding="0"
width="80%" id="main_table">
<TBODY>
<TR>
<TD height="20" align="center" colspan="3">
<BIG><CENTER>статистика за текущий месяц
<?php echo $curr_month; ?></CENTER></BIG></TD>
</TR>
<TR>
<TD height="20" width="15%" align="center">
<b>IP - адрес</b></TD>
<TD height="20" width="55%" align="center">
<b>пользователь</b></TD>
<TD height="20" width="30%" align="center">
<b>сколько скачано мегабайт</b></TD>
</TR>
<?php
// вытаскиваем статистику по пользователям из БД
$sql = mysql_query("SELECT to_IP, SUM(bytes) AS `bytes` FROM
`" . $IF_internal_servera . "_" . date(Y,time()) . "` WHERE `date`
LIKE '" . $curr_month . "-%' AND from_IP != '" . $ip_out_servera . "'
AND to_IP != '" . $ip_out_servera . "' AND
`to_IP` != '" . $ip_internal_servera . "'
AND `from_IP` != '" . $ip_internal_servera . "' AND `to_IP`
LIKE '" . $lan_mask . "%' GROUP BY `to_IP` ORDER BY `bytes` DESC");
// Строим табличку по тем кого достали
// вытаскиваем рейтинг страниц из БД
while ($d = mysql_fetch_assoc($sql)) {
// собственно тут вывод результатов.
$bytes = $d['bytes'] /1048576;
$bytes = round($bytes, 2);
$user_name = $users [$d ['to_IP']];
if (!isset ($user_name))
$user_name = '<b>Неизвестный</b>';
?>
<tr class=hilightoff onmouseover="className='hilighton';"
onmouseout="className='hilightoff';">
<td style="border-bottom: 1px solid #707680;"
width="" align="left"><?php echo $d['to_IP']; ?></td>
<td style="border-bottom: 1px solid #707680;"
width="" align="left"><?php echo $user_name; ?></td>
<td style="border-bottom: 1px solid #707680;"
width="" align="center"><?php echo $bytes; ?></td>
</tr>
<?php
unset ($user_name);
}
?>
</TBODY>
</TABLE>
</TD>
<TD width="50%" align="center" valign="top">
<TABLE border="1" cellspacing="0" cellpadding="0"
width="80%" id="main_table">
<TBODY>
<TR>
<TD height="20" align="center" colspan="3">
<BIG><CENTER>статистика за прошлый месяц
<?php echo $old_month; ?></CENTER></BIG></TD>
</TR>
<TR>
<TD height="20" width="25%" align="center">
<b>IP - адрес</b></TD>
<TD height="20" width="55%" align="center">
<b>пользователь</b></TD>
<TD height="20" width="30%" align="center">
<b>сколько мегабайт</b></TD>
</TR>
<?php
// вытаскиваем статистику по пользователям из БД
$sql = mysql_query("SELECT to_IP, SUM(bytes) AS `bytes` FROM
`" . $IF_internal_servera . "_" . date(Y,time()) . "` WHERE `date`
LIKE '" . $old_month . "-%' AND from_IP != '" . $ip_out_servera . "' AND
to_IP != '" . $ip_out_servera . "' AND `to_IP` != '" . $ip_internal_servera . "'
AND `from_IP` != '" . $ip_internal_servera . "' AND `to_IP` LIKE
'" . $lan_mask . "%' GROUP BY `to_IP` ORDER BY `bytes` DESC");
// Строим табличку по тем кого достали
// вытаскиваем рейтинг страниц из БД
while ($d = mysql_fetch_assoc($sql)) {
// собственно тут вывод результатов.
$bytes = $d['bytes'] /1048576;
$bytes = round($bytes, 2);
$user_name = $users [$d ['to_IP']];
if (!isset ($user_name))
$user_name = '<b>Неизвестный</b>';
?>
<tr class=hilightoff onmouseover="className='hilighton';"
onmouseout="className='hilightoff';">
<td style="border-bottom: 1px solid #707680;"
width="" align="left"><?php echo $d['to_IP']; ?></td>
<td style="border-bottom: 1px solid #707680;"
width="" align="left"><?php echo $user_name; ?></td>
<td style="border-bottom: 1px solid #707680;"
width="" align="center"><?php echo $bytes; ?></td>
</tr>
<?php
unset ($user_name);
}
?>
</TBODY>
</TABLE>
</TD>
</TR>
</TBODY>
</TABLE>
<br><br>
<?php
// считаем траффик этого месяца
$traffic_curr_month = mysql_fetch_array(mysql_query("SELECT SUM(bytes) AS `bytes`
FROM `" . $IF_out_servera . "_" . date(Y,time()) . "`
WHERE `to_IP` ='" . $ip_out_servera . "' AND `date`
LIKE '" . $curr_month . "-%'"));
$traffic_curr_meg = $traffic_curr_month[bytes] / 1048576;
$traffic_curr_meg = round($traffic_curr_meg, 2);
// считаем траффик прошлого месяца
$traffic_old_month = mysql_fetch_array(mysql_query("SELECT SUM(bytes) AS `bytes`
FROM `" . $IF_out_servera . "_" . date(Y,time()) . "` WHERE
`to_IP` ='" . $ip_out_servera . "' AND `date`
LIKE '" . $old_month . "-%'"));
$traffic_old_meg = $traffic_old_month[bytes] / 1048576;
$traffic_old_meg = round($traffic_old_meg, 2);
?>
Всего было траффика за этот
месяц: <?php echo $traffic_curr_meg; ?> мегабайт<br>
Всего было траффика за прошлый месяц:
<?php echo $traffic_old_meg; ?> мегабайт<br>
</FORM>
</BODY>
</HTML>
<?php ?>
большое спасибо за внимание.
оч надеюсь, что поможете ...
с уважением