ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Php скрипт ping
  #1  
Старый 15.10.2006, 17:47
Аватар для XIII
XIII
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
Провел на форуме:
656903

Репутация: 15
Отправить сообщение для XIII с помощью ICQ
По умолчанию Php скрипт ping

Может есть у кого мне надо чтобы скрипт пинговал IP
192.168.0.1 - 192.168.0.255 и например было так
(жёлтая или красная лампочка) Vasya 192.168.0.12 online
=) если скрипт лёгкий может кто напишит ?
 
Ответить с цитированием

  #2  
Старый 15.10.2006, 17:57
Аватар для Ch3ck
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

Вот нашёл у себя какой-то пинг.
PHP код:
 <?php
error_reporting
(E_ALL); 
echo 
"<h2>TCP/IP Connection</h2>\n";
/* Get the port for the WWW service. */
$service_port getservbyname('www''tcp');
/* Get the IP address for the target host. */
$address gethostbyname('www.example.com');
/* Create a TCP/IP socket. */
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
if (
$socket 0) {
    echo 
"socket_create() failed: reason: " socket_strerror($socket) . "\n";
} else {
    echo 
"OK.\n";
}
echo 
"Attempting to connect to '$address' on port '$service_port'...";
$result socket_connect($socket$address$service_port);
if (
$result 0) {
    echo 
"socket_connect() failed.\nReason: ($result) " socket_strerror($result) . "\n";
} else {
    echo 
"OK.\n";
}
$in "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out '';
echo 
"Sending HTTP HEAD request...";
socket_write($socket$instrlen($in));
echo 
"OK.\n";
echo 
"Reading response:\n\n";
while (
$out socket_read($socket2048)) {
    echo 
$out;
}
echo 
"Closing socket...";
socket_close($socket);
echo 
"OK.\n\n";
?>
А какой именно тебе нужен постараюсь написать вечером.(щас гулять надо идти.)
 
Ответить с цитированием

  #3  
Старый 15.10.2006, 18:08
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

PHP код:
<?php system('man ping'); ?>
естественно, для своей реализации нужны права root'а
Или юзать system() - на ping стоит суидный бит.
 
Ответить с цитированием

  #4  
Старый 15.10.2006, 18:58
Аватар для ZaCo
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

>>щас гулять надо идти
хорошая отмазка чтобы сувать сорц которые просто НЕ В ТЕМУ.
 
Ответить с цитированием

  #5  
Старый 15.10.2006, 23:26
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

Цитата:
Сообщение от ZaCo  
>>щас гулять надо идти
хорошая отмазка чтобы сувать сорц которые просто НЕ В ТЕМУ.
=)))) пингуем через http протокол =))) это сильно
 
Ответить с цитированием

  #6  
Старый 16.10.2006, 21:25
Аватар для XIII
XIII
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
Провел на форуме:
656903

Репутация: 15
Отправить сообщение для XIII с помощью ICQ
По умолчанию

ясно короче никто помочь не хочет
 
Ответить с цитированием

  #7  
Старый 16.10.2006, 21:31
Аватар для Pochka
Pochka
Познающий
Регистрация: 26.11.2005
Сообщений: 32
Провел на форуме:
47872

Репутация: 20
По умолчанию

Как отметил некто nerezus скрипт можно запускать только с рутовыми правами, а пример такого скрипта валялся всю жизнь на том же php.net:

function ping($host) {
$package = "\x08\x00\x19\x2f\x00\x00\x00\x00\x70\x69\x6e\x67" ;

/* create the socket, the last '1' denotes ICMP */
$socket = socket_create(AF_INET, SOCK_RAW, 1);

/* set socket receive timeout to 1 second */
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 1, "usec" => 0));

/* connect to socket */
socket_connect($socket, $host, null);

/* record start time */
list($start_usec, $start_sec) = explode(" ", microtime());
$start_time = ((float) $start_usec + (float) $start_sec);

socket_send($socket, $package, strlen($package), 0);

if(@socket_read($socket, 255)) {
list($end_usec, $end_sec) = explode(" ", microtime());
$end_time = ((float) $end_usec + (float) $end_sec);

$total_time = $end_time - $start_time;

return $total_time;
} else {
return false;
}

socket_close($socket);
}
 
Ответить с цитированием

  #8  
Старый 16.10.2006, 21:51
Аватар для EXSlim
EXSlim
Познающий
Регистрация: 09.10.2006
Сообщений: 92
Провел на форуме:
347686

Репутация: 87
Отправить сообщение для EXSlim с помощью ICQ
По умолчанию

//предварительно профильтроовав переменную ip
// флаг -с - количество попыток соединения
exec("ping -c 1 $ip > tmp.txt", $out);

//Вывод результатов пинга
readfile("tmp.txt");

ну и можно вставить куда-то unlink() если нужно
 
Ответить с цитированием

  #9  
Старый 16.10.2006, 22:19
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

апач от рута не запускают. Это так, к сведению.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ