ping php belirli bir porta (fsockopen) aracılığıyla bir sunucu

0 Cevap php

function checkServer($domain, $port=80) { global $checkTimeout, $testServer;

$status = 0;

$starttime = microtime(true);
$file = @fsockopen ($domain, $port, $errno, $errstr, $checkTimeout);
$stoptime = microtime(true);

if($file)
{
    fclose($file);
    $status = ($stoptime - $starttime) * 1000;
    $status = floor($status);
}
else
{
    $testfile = @fsockopen ($testServer, 80, $errno, $errstr, $checkTimeout);
    if($testfile)
    {
        fclose($testfile);
        $status = -1;
    }
    else
    {
        $status = -2;
    }
}

return $status;

}

testserver google.sk ve checkTimeout 10 saniyedir. Bu gerçekten işe yarıyor, ama ben yaklaşık 50 kez bir döngü içinde çalıştırmak, ve diğer şeyler (gibi mysql sorguları ve şeyler) yapmaya çalıştığınızda, yavaş değil, ama script sonlanana kadar benim CPU% 100 yük neden olur. Bu benim cpu deli tek bir apache proccess var ... Yani ben bu konuda herhangi bir fikir varsa size sormak istedim. belki bu yüzden python veya bash aynı şeyi nasıl veya bazı ucu takdir edilecektir.

Yanıtlar için teşekkür ederim :)

0 Cevap