Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как узнать, работает ли машина в моей сети с PHP?

Автор вопроса: CoderWalkerОтветов: 1

Я хочу написать PHP-скрипт, аналогичный Enterprise Network Console, но для локальной сети ПК и устройств вместо WAN серверов.

Я хочу иметь возможность проверить, подключены ли ПК, копировальные аппараты и т. д. к сети. Я хочу знать, даже если они выключены, однако это невозможно, поскольку ПК игнорируют пакеты, если это не пакет пробуждения по локальной сети, верно?

Как лучше всего проверить, включен компьютер или нет? Я использовал fSocketOpen() для тестирования серверов, однако большинство ПК не являются серверами. Они отвечают на эхо-запросы, но не имеют открытых портов для соединений, что означает, что PHP'ss fSocketOpen() не будет работать, а пингование работает.

  • Почему вы пытаетесь сделать это в PHP? meagar 09.08.2012
  • Мне нужно, чтобы это было доступно через веб-интерфейс, поскольку мой раздел VLAN является одной из многих частей, которые физически удалены друг от друга. CoderWalker 09.08.2012
  • Я удалил тонну более или менее чепухи из вашего поста и отредактировал его, чтобы задать конкретный вопрос, на который можно ответить, тем самым уберег его от закрытия. Ваши сообщения должны содержать один вопрос и быть максимально короткими. Не было никакой причины для всей этой справочной информации, просто выйдите и задайте вопрос. Кроме того, пожалуйста, не добавляйте подписи или слоганы к своим сообщениям. meagar 09.08.2012
  • Спасибо за щедрость тех, кто ответил, что это не использовалось в качестве слогана. Также есть огромная проблема с вашим редактированием. Вы удалили важные детали, такие как: диапазон устройств (VOIP, копировальные аппараты, настольные компьютеры), информацию о сети и важную часть поста (проверка новых устройств). что я не получу много невозможных ответов. Но спасибо, что не закрыли. Просто подумайте, что это может сбивать с толку сейчас. Нужно ли делать пост по каждому вопросу? CoderWalker 09.08.2012
  • Глядя на исходный пост, у меня есть такой комментарий: вы хотите, чтобы мы сделали все это для вас? Я имею в виду, почитайте о сетевом программировании, а затем вернитесь, если у вас возникнут вопросы. netcoder 09.08.2012
  • Нет, мне просто любопытно, возможно ли использовать исключительно PHP и есть ли у кого-нибудь знания о какой-либо его части, которая может быть полезной. Пример: Как пинговать устройства в PHP, лучший способ настроить автоматическую часть. (О сетевом программировании: я занимаюсь программированием уже 6 лет, 3 из них - программирование на C# .NET и PHP/MySQL.) CoderWalker 09.08.2012

enterprisephpanalysislanping

Ответы

Ответ 1 · рейтинг 2 · Tim

Вы можете использовать системные команды и перехватывать стандартный вывод результатов.

Просто выполните поиск примеров PHP popen ( http://uk3.php.net/popen ).

echo run('ping 192.168.1.5');

function run($command) {
    $command .= ' 2>&1';
    $handle = popen($command, 'r');
    $log = '';

    while (!feof($handle)) {
        $line = fread($handle, 1024);
        $log .= $line;
    }

    pclose($handle);
    return $log;
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы