Помогите с вебмордой к трафику от ув. Лисяры

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Mr Alter Ego
сержант
Сообщения: 238
Зарегистрирован: 2007-07-12 13:06:02
Откуда: Украина
Контактная информация:

Помогите с вебмордой к трафику от ув. Лисяры

Непрочитанное сообщение Mr Alter Ego » 2008-02-18 10:41:50

Привет !

Уважаемые ...

вобщем ... поставил вебморду ... и настроил все, как написано в статье 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);
?>
Всего было траффика за&nbsp; &nbsp; этот &nbsp; &nbsp;
месяц: &nbsp; <?php echo $traffic_curr_meg; ?> мегабайт<br>
Всего было траффика за прошлый месяц:
<?php echo $traffic_old_meg; ?> мегабайт<br>
</FORM>
</BODY>
</HTML>

<?php ?>
оч большая просьба - помогите ... если кому не трудно. мне в итоге нужно только переделать SQL запросы, и добавить несколько переменных с моим айпи адресами.

большое спасибо за внимание.
оч надеюсь, что поможете ...

с уважением
Best Regards

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Помогите с вебмордой к трафику от ув. Лисяры

Непрочитанное сообщение zg » 2008-02-18 11:24:08

pma - даст ответы на все твои вопросы

http://www.phpmyadmin.net/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Помогите с вебмордой к трафику от ув. Лисяры

Непрочитанное сообщение zg » 2008-02-18 11:29:56

$curr_month_num = date(m,time());
$curr_year_num = date(Y,time());
видать нотисы были в отпуске :) использовать необъявленные константы не есть гуд

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35071
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите с вебмордой к трафику от ув. Лисяры

Непрочитанное сообщение Alex Keda » 2008-02-18 12:36:29

дык - писалось всё на скору руку =)
Убей их всех! Бог потом рассортирует...

альтер
проходил мимо

Re: Помогите с вебмордой к трафику от ув. Лисяры

Непрочитанное сообщение альтер » 2008-02-18 13:04:52

спасибо большое за помощь.

видимо отложу проблему до следующих времен.

:cry:

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35071
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите с вебмордой к трафику от ув. Лисяры

Непрочитанное сообщение Alex Keda » 2008-02-18 13:09:07

php - несложный язык.
за это время вполне можно было разобраться, даже если не программил до этого ни на чём.
===========
если ты не хочешь сам разбираться - помогать тоже мало кто захочет...
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Помогите с вебмордой к трафику от ув. Лисяры

Непрочитанное сообщение zg » 2008-02-18 14:38:30

альтер писал(а):видимо отложу проблему до следующих времен. :cry:
не плакай, просто ты не о том просишь, тебе сейчас нужно впервую очередь составить правильно запрос на выборку, потом уже скрипт править, а ты сразу хочешь чтоб кто-то тебе готовый скрипт выложил... так не получится