PHP и сокеты(протокол ICMP). Пинг.

ZhekaNerush

Новичок
PHP и сокеты(протокол ICMP). Пинг.

Столкнулся с проблемой реализации пинга на пхп.
PHP:
//проверка контрольной суммы
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);
    }
// Формируем пакет
    $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); 
    $package = $type.$code.$checksum.$identifier.$seqNumber.$data;
//создаём сокет (ICMP)
$socket = socket_create(AF_INET, SOCK_RAW, 1);
//коннектимся
socket_connect($socket, "10.2.150.225", null);
//отправляем что-то
while(true){
       socket_send($socket, $package, strLen($package), 0);
}
В итоге пакеты не шлются. Так мне говорит фаервол (Bytes sent: 0 bytes).
Что не так???

-~{}~ 07.06.06 10:46:

Win, Apache 1.3.33 + PHP 5.1.4
 

Navarro

Новичок
Посмотри систему мониторинга http://cacti.net/download_cacti.php
Там есть пхп класс в котором реализован пинг.
 

neko

tеam neko
да рекоменндую ознакомиться с данным произведением.

для лучшего представления о типичных php приложениях.
 
Сверху