[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Мониторинг сети
alexphp123
Как можно реализовать мониторинг сети на языке php.... есть варианты???????
ПОМОГИТЕ ПОЖАЛУЙСТА ЛЮДИ ДОБРЫЕ



Спустя 1 час, 54 минуты, 5 секунд (2.11.2011 - 08:20) imbalance_hero написал(а):
alexphp123
Какой мониторинг? Какой сети? Если я правильно понял, то через соккеты.

Спустя 3 минуты, 59 секунд (2.11.2011 - 08:24) linker написал(а):
Что значит мониторинг сети? Какая проблема скачать нормальный софт на эту тему?

Спустя 2 часа, 27 минут, 47 секунд (2.11.2011 - 10:52) alexphp123 написал(а):
Проблема в том что надо именно на php Мониторинг доступность компьтеров в сети .

Спустя 41 минута, 42 секунды (2.11.2011 - 11:34) linker написал(а):
Ну в цикле через сокеты.

Спустя 1 минута, 13 секунд (2.11.2011 - 11:35) alexphp123 написал(а):
А можно по подробней ?

Спустя 3 минуты, 8 секунд (2.11.2011 - 11:38) programmer-php написал(а):
Цитата
мониторинг сети
huh.gif












Спустя 23 минуты, 29 секунд (2.11.2011 - 12:02) killer8080 написал(а):

Спустя 59 минут, 38 секунд (2.11.2011 - 13:01) alexphp123 написал(а):
Нет ((( пример есть адреса 192.168.1.1-192,168,1,200
нужен постояный пинг что бы знать что они в сети

Спустя 26 минут, 15 секунд (2.11.2011 - 13:28) killer8080 написал(а):
alexphp123
как нет? В той статье же есть функция пинга через сокеты.
Свернутый текст
// Checksum calculation function
function icmpChecksum($data)
{
if (strlen($data)%2)
$data .= "\x00";

$bit = unpack('n*', $data);
$sum = array_sum($bit);

while ($sum >> 16)
$sum = ($sum >> 16) + ($sum & 0xffff);

return pack('n*', ~$sum);
}

// Making the package
$type = "\x08";
$code = "\x00";
$checksum = "\x00\x00";
$identifier = "\x00\x00";
$seqNumber = "\x00\x00";
$data = "Scarface";

$package = $type.$code.$checksum.$identifier.$seqNumber.$data;
$checksum = icmpChecksum($package); // Calculate the checksum

$package = $type.$code.$checksum.$identifier.$seqNumber.$data;

// And off to the sockets
$socket = socket_create(AF_INET, SOCK_RAW, 1);
socket_connect($socket, "www.google.com", null);

// If you're using below PHP 5, see the manual for the microtime_float
// function. Instead of just using the microtime() function.

$startTime = microtime(true);

socket_send($socket, $package, strLen($package), 0);
if (socket_read($socket, 255)) {
echo round(microtime(true) - $startTime, 4) .' seconds';
}

socket_close($socket);

Спустя 9 минут, 19 секунд (2.11.2011 - 13:37) alexphp123 написал(а):
он у меня не работает((((((

Спустя 14 минут, 4 секунды (2.11.2011 - 13:51) killer8080 написал(а):
Там эмулируется icmp echo request (ping)
Ну на крайняк можно просто проверять по наличию открытого порта, например нетбиос (если он есть)
if($f = @fsockopen('192.168.4.5', 139, $no, $text, 3)){
echo 'online';
fclose($f);
}
else{
echo 'offline';
}

Спустя 16 минут, 17 секунд (2.11.2011 - 14:07) killer8080 написал(а):
Цитата (alexphp123 @ 2.11.2011 - 13:37)
он у меня не работает((((((

Потому что нужно расширение Sockets, в кастрированном денвере его нет wink.gif

Спустя 15 часов, 42 минуты, 27 секунд (3.11.2011 - 05:50) alexphp123 написал(а):
Спасибо все заработала но не у всех открыт порт даже 80 так что надо всетаки ping.

Спустя 6 часов, 24 минуты, 42 секунды (3.11.2011 - 12:14) alexphp123 написал(а):
Написал наверно ахенея но работает есть вопрос ?
Спасибо всем гуру PHP!!!!!!!!!!
<meta http-equiv="refresh" content="30;URL=http://192.168.1.1/pings/monitoripserver.php">
Значение content="30 максимально сколько может быть ? А ставлю 30 обновляется страница 100 уже нет а нодо значение 1000 .
Может есть другуй спопсоб обновлять страницу через n минут.

Спустя 18 минут, 50 секунд (3.11.2011 - 12:33) killer8080 написал(а):
Цитата (alexphp123 @ 3.11.2011 - 05:50)
Спасибо все заработала но не у всех открыт порт даже 80 так что надо всетаки ping.

а кого пингуешь? 80 порт открыт только на серваках. У виндовых юзверей обычно есть 139 порт, если служба доступа к файлам и принтерам микрософта не отключена, или не прикрыта фаирволом.
Цитата (alexphp123 @ 3.11.2011 - 12:14)
Может есть другуй спопсоб обновлять страницу через n минут

Конечно есть - JS. Но в таких случаях лучше не обновлять страницу, а подтягивать данные аяксом.

Спустя 1 минута, 46 секунд (3.11.2011 - 12:35) killer8080 написал(а):
Кстати на чем сервак работает, денвер?
Тогда можно было бы заюзать виндовый ping.exe.

exec('ping -n 2 mail.ru', $lines);
$lines = iconv('CP866', 'UTF-8', implode("\r\n", $lines));
echo '<pre style="width:600px; height:250px; padding:10px 20px; '.
'border:3px solid #999; color:#ddd; background-color:#000">'.
$lines.
'</pre>';
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.