Rojer
Новичок
проблемы с таймаутом в функции fsockopen
Нужно проверить идет ли конект по такому то адресу и порту то есть хост online или offline
например включена у него служба на порты в диапазоне 27015-27020
вызываю функцию fsockopen
<?php
$start = time() + microtime();
$host = "80.233.152.10";
$timeout = "0.1";
echo 'IP: '. $host .'<br>';
for($port=27015; $port<=27020; $port++) {
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout);
if(!$fp) {
echo 'port: '. $port .' [offline]<br>';
}else{
echo 'port: '. $port .' [<b>online</b>]<br>';
}
}
echo 'Время на выполнения скрипта: '. (time() + microtime() - $start);
?>
Если в сети есть компютер с IP 80.233.152.10 то скрипт выполняется всреднем 1 секунду а если от сервера вообще нету ответа то есть компютер выключин то скрипт выполняется всреднем 25 секунд несматря на то что тайм аут стаит 0.1 секунда.
Помогите решить проблему
Нужно проверить идет ли конект по такому то адресу и порту то есть хост online или offline
например включена у него служба на порты в диапазоне 27015-27020
вызываю функцию fsockopen
<?php
$start = time() + microtime();
$host = "80.233.152.10";
$timeout = "0.1";
echo 'IP: '. $host .'<br>';
for($port=27015; $port<=27020; $port++) {
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout);
if(!$fp) {
echo 'port: '. $port .' [offline]<br>';
}else{
echo 'port: '. $port .' [<b>online</b>]<br>';
}
}
echo 'Время на выполнения скрипта: '. (time() + microtime() - $start);
?>
Если в сети есть компютер с IP 80.233.152.10 то скрипт выполняется всреднем 1 секунду а если от сервера вообще нету ответа то есть компютер выключин то скрипт выполняется всреднем 25 секунд несматря на то что тайм аут стаит 0.1 секунда.
Помогите решить проблему