Статистика подключений на порт

Тема в разделе "PHP программирование", создана пользователем Proton, 27 май 2010.

  1. Proton

    Proton Гость

    Здравствуйте, имеется сервер на UBUNTU server, производится вещание с помощью VLC в сеть TV и радио. Нужен скрипт отслеживающий в реальном времени (при открытии страницы на сайте) количество подключений на определённый порт, тоесть сколько в данный момент человек смотрит определенный канал или радио. возможно ошибся разделом PHP, :) кто может направте в нужном направлении.
     
  2. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Вы ошиблись разделом) Хотя не совсем.. Вобщем, вам нужна какя-то программа, демон, который будет сам следить где-то за статистикой подключений на такой-то порт(тот-же iptables). А вот уже из пхп эту информацию можно получать по разному.. Например, через вызов system() того же iptables'a и парсинга его вывода.. Вариантов много) Наймите лучше специалиста)
     
  3. Proton

    Proton Гость

    Решение найдено!!!
    Возможно есть и более простое решение, меня устраивает и своя идея.
    Создаётся 2 скрипта:
    1. написан на bash , ложится в любое место делается исполняемым chmod +x, выполняется без конца с заданием интервала выполнения числом sleep в секундах, его содержимое:

    #!/bin/sh

    while sleep 20
    do
    netstat -an | grep 8000 | grep ESTABLISHED > /var/www/stat_ports/8000.txt
    done

    #необходимо создать файл /var/www/stat_ports/8000.txt и дать права chmod 777 /var/www/stat_ports/8000.txt


    Тут есть моменты, тупо скопированое с форума данное содержимое может не заработать, выдав ошибку интерпритаторa bash, связано это со спец символами перевода строки и возврата каретки. Объяснят не буду можно и погуглить, скажу только что стандартный (в линухе) mcedit видит эти символы, их надо удалить.

    2. скрипт на php, вставляется в вашу страницу, данные берёт из /var/www/stat_ports/8000.txt и лежит рядом с ним, кодировка utf-8, содержимое:

    Код (PHP):
    <?php
    $file_array = file ("stat_ports/8000.txt");
    if(!$file_array)
    {
    echo("Никто не слушает");
    }
    else
    {
    $num_str = count($file_array);
    echo("Сейчас слушает ");
    echo($num_str);
    echo(" человек");
    }
    ?>

    Путь к файлу берётся относительно виртуальной директории апача.



    Есть вариант обойтись постоянным выполнением скрипта на bash вызовом выполнения его через php

    Код (PHP):
    <?php system("/bin/sh your.sh"); ?>
    ----

    your.sh

    #!/bin/sh
    echo "WORKING!"

    Мне показалось это не удобным, так как для каждого открывшего страничку со статистикой дёргается скрипт your.sh создавая процес для каждого свой, гораздо стабильнее выдавать подготовленные данные в моём примере обновляя данный скажем раз в 20 секунд, нагрузка не большая, процес всего один.
    Удачи!
     
  4. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Ну я же вам примерно о том же и написал, что через пхп просто дергаются данные из другой проги.. А если вы против лишних процессов, можно просто форки сделать..
     
Загрузка...

Поделиться этой страницей