mam pytanie,
funkcja w ponizszym kodzie sprawdza czy serwer odpowiada a jezeli nie wysyla e-mail do admina
dlaczego pomomimo ze wywoluje funkcje dla sprawdzania domeny onet.pl i portu 80 to dostaje e-mail o temacie:
"www.onet.pl:22 nie odpowiada"
sprawdzalem z czym wywolywana jest funkcja i jest prawidlowo: para 'www.onet.pl' oraz port 80.
Pozniej w funkcji cos sie dzieje ze dostaje e-mail z portem od innej strony
nie wiem gdzie robie blad
<?php
class Host
{
var $addr;
var $tPorts;
function host($p,$a)
{
$this->tPorts = $p;
$this->addr = $a;
}
}
function Check($host,$port) {
if(!fsockopen($host, $port, $errno, $errstr, 30
)) {
echo 'Kod bledu: ' . $errno; echo 'Tresc bledu: ' . $errstr;
$headers = "MIME-Version: 1.0rn";
$headers .= "Content-type: text/html; charset=iso-8859-2rn";
$headers .= "From: wap@serwerow.plrn";
$message = 'tu bedzie tresc bledu';
$subject = 'host: ' . $host . ':' . $port . ' nie odpowiada';
$receiver1 = 'fool1@example.com';
$receiver2 = 'fool2@example.com';
if ( !mail($receiver1,$subject,$message,$headers) || !mail($receiver2,$subject,$message,$headers) ) { error_log('errorlog.dat',time() . ' host: ' . $host . ':' . $port . ' nie odpowiada',3,'errorlog.dat'); }
}
}
// lista obiektow:
$onet = new host
(array(80),'www.onet.pl'); $sirius = new host
(array(22),'www.wp.pl');
while (true)
{
for ($i=0;$i<$lHosts;$i++)
{
$nPorts = count ($hosts[$i]->tPorts);
for ($j=0;$j<$nPorts;$j++)
Check($hosts[$i]->addr,$hosts[$i]->tPorts[$j]);
}
//sleep(15*60);
}
?>