joni
Писатель
- Регистрация
- 29 Июн 2007
- Сообщения
- 9
- Реакции
- 1
- Автор темы
- #1
Пользуюсь вот такой конструкцией для пинга (суть не в нем)
Если ставить любой не использующийся порт на удаленной машине - все "пингует" и ошибок нет.
Если ставлю Порт на котором висит какая то либо игра (CS например) то "пинг" не доходит.
Та же беда в принципе и в мониторингах для игровых серверов. Беда только на одной WEB машине (веб сервер).
машина стоит за nginx на самой машине апач и php4.
Подскажите в какую сторону копать, чтобы исправить?
PHP:
<?php
$host = '172.16.2.29' ;
$timeout = 2 ;
//Open the socket
$handle = @fsockopen("udp://$host", 2701, $errno, $errstr, 1);
if (! $handle )
echo "$errstr ($errno)<br>\r\n" ;
else {
//Set read timeout
stream_set_timeout ( $handle , $timeout );
for ( $i = 0 ; $i < 3 ; $i ++){
//Time the responce
list ( $usec , $sec ) = explode ( " " , microtime ( true ));
$start =(float) $usec + (float) $sec ;
//send somthing
$write = fwrite ( $handle , " echo this\n" );
if (! $write ){
echo "Error in writing to socked<br>\r\n" ;
break;
}
echo 'Send packet to ' . $host ;
//Try to read. the server will most likely respond with a "ICMP Destination Unreachable" and end the read. But that is a responce!
fread ( $handle , 1024 );
//Work out if we got a responce and time it
list ( $usec , $sec ) = explode ( " " , microtime ( true ));
$laptime =((float) $usec + (float) $sec )- $start ;
if ( $laptime > $timeout )
echo " : No reply<br>\r\n" ;
else
echo " : Round trip = " . round ( $laptime , 3 ). " s<br>\r\n" ;
}
fclose ( $handle );
}
?>
Если ставить любой не использующийся порт на удаленной машине - все "пингует" и ошибок нет.
Если ставлю Порт на котором висит какая то либо игра (CS например) то "пинг" не доходит.
Та же беда в принципе и в мониторингах для игровых серверов. Беда только на одной WEB машине (веб сервер).
машина стоит за nginx на самой машине апач и php4.
Подскажите в какую сторону копать, чтобы исправить?