Avatar billede qualon2 Nybegynder
24. december 2003 - 03:28 Der er 7 kommentarer

Checke om computer online

Jeg har lavet dette:

<?php
function control_socket($host, $port) {
$this->hostname = $host;
$this->portnumb = $port;
$this->contsock = fsockopen($this->hostname, $this->portnumb);
if ( $this->contsock ) {
return true;
}
else {
return false;
}
}
?>

<?
control_socket('qualon.lir.dk', 80);
?>

qualon.lir.dk er ip

det virker.. hvis den er online... Men hvis den er offline så udskriver den fejll hvordan får jeg lavet sådan et er min egen besked der skal komme?
Avatar billede 7th Praktikant
24. december 2003 - 03:33 #1
Et gæt, men prøv return $this -> contsock == true ? true : false;
Avatar billede martinbk Nybegynder
24. december 2003 - 09:01 #2
det virker ikke fordi du ikke angiver de korrekte parametere til fsockopen.
iflg. http://dk.php.net/manual/en/function.fsockopen.php kræver fsockopen følgende: host, port, fejlnummer, fejlstreng, og timeout værdi

altså i dit tilfælde bliver det jo nok:
$this->contsock = fsockopen($this-hostname, $this->portnumb, $errno, $errstr, 5);

men lige et lille spørgsmål, hvorfor dog så omstændigt blot for en funktion, hvad er begrundelsen for at bruge this pointeren istedet for blot noget alla:

function control_socket($port, $host) {
    $ch = @fsockopen($host, $port, $errno, $errstr, 5);
    if ($ch) {
        @fclose($ch);
        return true;
    }
    else {
        return false;
    }
}
Avatar billede eflow Nybegynder
24. december 2003 - 15:22 #3
holybull, funktionen er nok taget ud fra en stører sammenhæng (en class) ...derfor this pointeren :)
jeg tror ikke han kalder den med funktionen som han skriver lige nedenunder, men man ved selfølgeligt aldrig :)

Glædelig jul..
Avatar billede martinbk Nybegynder
24. december 2003 - 17:13 #4
at dømme ud fra konstruktionen er det netop ikke taget ud fra en class (hvor er konstruktører etc.?)
Avatar billede qualon2 Nybegynder
24. december 2003 - 19:33 #5
hmmm altså det eneste jeg vil opnå er at finde ud af om den computer med den ip er online.... Og som sagt det virker ved online... Men når den er offline så udskriver den fejl:
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in c:\programmer\apache group\apache\htdocs\status.php on line 5

Warning: fsockopen(): unable to connect to qualon.lir.dk:110 in c:\programmer\apache group\apache\htdocs\status.php on line 5


Det vil jeg gerne erstatte med : $host er offline
Avatar billede martinbk Nybegynder
25. december 2003 - 01:57 #6
tja @ foran funktions navnet ignorer alle fejl meddelelser fra funktionen
Avatar billede martinbk Nybegynder
28. december 2003 - 17:14 #7
fundet ud af noget ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester