checken of een computer online is met fsockopen

Pagina: 1
Acties:

  • DumbAss
  • Registratie: April 2002
  • Laatst online: 22-07 10:35
Ik probeer met behulp van dit script te kijken of een computer online is of niet. Maar ook al staat hij online hij geeft toch 'offline' terug.
Weet iemand waarom?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php 
# INSTELLINGEN 
$font="vixarasc.ttf";                # FONT NAAM 
$portarray=array(22,80,23,139,3306,7777);        # LIJST VAN STANDAARD POORTEN 
$host='Studhuis.xs4all.nl';

# ALS $port NIET OPGEGEVEN STANDAARD POORTEN CONTROLEREN 
if(!$port) { 
    # CONNECTIE CONTROLEREN OP BASIS VAN STANDAARD POORTEN 
    for($i=0;$i<count($portarray) AND $status!='online';$i++) { 
        $sock = fsockopen($host, $portarray[$i], &$num, &$error, 1); 
        if(!$sock) { 
            $status = "offline"; 
            @fclose ($sock); 
        } else { 
            $status = "online"; 
            @fclose ($sock); 
        } 
    } 

} else { 
    # CONNECTIE CONTROLEREN OP BASIS VAN GEGEVEN POORT 
    $sock = fsockopen($host, $port, &$num, &$error, 10); 
    if(!$sock) { 
        $status = "offline"; 
        @fclose ($sock); 
    } else { 
        $status = "online"; 
        @fclose ($sock); 
    } 
} 
echo $status;

?>

Vanutsteen.nl => nerds only | iRacing


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:49
Zie QuickStart; wat heb je al geprobeerd, etcetera. Plaats sowieso je code tussen [php]-tags.

Is het ook niet handiger om de ontvangen gewoon te pingen?

  • DumbAss
  • Registratie: April 2002
  • Laatst online: 22-07 10:35
Dat scriptje zet ik op een lycos server zodat als mijn computer/server niet aan staat hij weergeeft dat hij niet aanstaat en als ie wel aanstaat dat ie `m dan forward naar studhuis.xs4all.nl.

Dat pingen gaat dus niet omdat ik de permissies daar niet voor heb op Lycos.

Het basisprincipe is dit:
fsockopen(Studhuis.xs4all.nl, 80, &$num, &$error, 1);
Maar hij zegt gewoon dat ik niet online ben terwijl m`n server wel gewoon aan staat.
Ik heb het ook al geprobeerd met het ip adres maar dat werkte ook niet.

Vanutsteen.nl => nerds only | iRacing


  • Bene
  • Registratie: Augustus 2000
  • Laatst online: 29-08 10:15

Bene

list incomprehension

Nee, ik zou ook fsockopen gebruiken. Bij pingen is de minimale connectietijd veel langer en kun je natuurlijk geen poortnummer opgeven. Bij fsockopen kun je connectietijden tot bv 0,05 sec opgeven. Als je de error achteraf afdrukt ook geen foutmelding?

  • grep
  • Registratie: Augustus 2001
  • Laatst online: 24-07 11:23

grep

meer begrep...

Misschien een open deur intrappen maar je hebt toch niet toevallig iets van een firewall draaien op die server, die die poorten misschien dicht heeft gegooid?

Dumbass: ja sorry, maar dat had je er niet echt duidelijk bijgezet, vandaar mijn vraag...

  • DumbAss
  • Registratie: April 2002
  • Laatst online: 22-07 10:35
Hij geeft geen error. Hij geeft gewoon FALSE terug. Terwijl het TRUE moet zijn

Hoe kan poort 80 nou dichtzitten als de webserver het wel gewoon doet?
OK mijn fout.

Vanutsteen.nl => nerds only | iRacing


Verwijderd

Ik denk ... eerlijk gezegd... dat je je Internet Explorer even moet refreshen ;)
dit is jouw scriptje:
http://www.subreality.net/test.php

duuuuuusss

"studhuis.xs4all.nl is online op port 139"

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
is het alleen niet handiger om 139 dicht te zetten? of is het geen windows bak?

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • DumbAss
  • Registratie: April 2002
  • Laatst online: 22-07 10:35
Mhh, waarom doet ie het bij jou wel?
Check Lycos: http://members.lycos.nl/ikkezelve/Leon/test.php
Die doet het dus niet hè!
Het ligt dus gewoon aan Lycos?

Vanutsteen.nl => nerds only | iRacing


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

zou kunnen dat lycos het niet toestaat
rammel al die @'s eens uit je code
dan zie je de errors

Doet iets met Cloud (MS/IBM)


Verwijderd

Offeuh...
Je checkt in je scriptje of de string 'online' is....
probeer dit eens:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php 
# INSTELLINGEN 
$font="vixarasc.ttf"; # FONT NAAM 
$portarray=array(22,80,23,139,3306,7777); # LIJST VAN STANDAARD POORTEN 
$host='studhuis.xs4all.nl';

# ALS $port NIET OPGEGEVEN STANDAARD POORTEN CONTROLEREN 
if(!$port) { 
# CONNECTIE CONTROLEREN OP BASIS VAN STANDAARD POORTEN 
for($i=0;$i<count($portarray) AND !strstr($status,'online');$i++) { 
$sock = fsockopen($host, $portarray[$i], &$num, &$error, 1); 
if(!$sock) { 
$status = $host." is <b>offline</b>";
@fclose ($sock); 
} else { 
$status = $host." is <b>online</b> op port ".$portarray[$i];
@fclose ($sock); 
} 
} 

} else { 
# CONNECTIE CONTROLEREN OP BASIS VAN GEGEVEN POORT 
$sock = fsockopen($host, $port, &$num, &$error, 10); 
if(!$sock) { 
$status = $host." is <b>offline</b>";
@fclose ($sock); 
} else { 
$status = $host." is <b>online</b> op port ".$port; 
@fclose ($sock); 
} 
} 
echo $status;

?>

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

waarom toch al die @'s?
je wil toch weten wat er fout gaat? dan ga je toch geen errors onderdrukken?

Doet iets met Cloud (MS/IBM)


  • DumbAss
  • Registratie: April 2002
  • Laatst online: 22-07 10:35
D2k schreef op 01 oktober 2002 @ 10:33:
rammel al die @'s eens uit je code
Geen errors. Het waren ook maar 3 @`s :)

Vanutsteen.nl => nerds only | iRacing


  • DumbAss
  • Registratie: April 2002
  • Laatst online: 22-07 10:35
Verwijderd schreef op 01 oktober 2002 @ 10:41:
Offeuh...
Je checkt in je scriptje of de string 'online' is....
probeer dit eens:
Nee dat doet ie ook niet. Check maar:
http://members.lycos.nl/ikkezelve/Leon/Tweaker.php

`t is echt een kutprobleem hè?

Vanutsteen.nl => nerds only | iRacing


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Misschien draait Lycos wel een firewall ;)
Uitgaand verkeer blokkeren voor poort 139 is niet erg ongebruikelijk.

  • ruuds
  • Registratie: Maart 2001
  • Laatst online: 13:54
hallo?????
lees de lycos faq door

LYCOS HEEFT SOCKETS UIT STAAN

t zou wat worden als iedereen daar lekker data gaat pompen via sockets...

updeet:

http://www.tripod.lycos.nl/support/faq/6/#section_6

  • DumbAss
  • Registratie: April 2002
  • Laatst online: 22-07 10:35
Ok, bedankt DeRuud stomme (weeral? Ja weeral) fout (weeral? Ja weeral) van me. Maar weet iemand een gratis host die dat wel toelaat?
Het is echt maar voor één scriptje.

Vanutsteen.nl => nerds only | iRacing


  • grep
  • Registratie: Augustus 2001
  • Laatst online: 24-07 11:23

grep

meer begrep...

dus tóch een firewall (alleen op een andere plek dan ik dacht) ;)

  • ruuds
  • Registratie: Maart 2001
  • Laatst online: 13:54
DumbAss schreef op 01 oktober 2002 @ 14:16:
Ok, bedankt DeRuud stomme (weeral? Ja weeral) fout (weeral? Ja weeral) van me. Maar weet iemand een gratis host die dat wel toelaat?
Het is echt maar voor één scriptje.
Neej volgensmij zijn die er niet, of het moet zo'n ik-heb-kabelinternet-dus-ik-heb-een-gratis-webserver-voor-iedereen-thuis-maar-ik-ben-unox-n00b persoontje zijn.... En ik heb overigens laatst van een vriend gehoord dat vuurwerk dit zelfs uit heeft staan.

Je zou het wel via een omweg kunnen doen:
Laad een pagina van de server die je wilt controleren in een iframe. De opgevraagde pagina moet dan een herkenbare tekst ofzo bevatten, bv een code zoals [ONLINE].
De inhoud van het iframe (de opgevraagde pagina) lees je dan uit, en als deze ongelijk is aan [ONLINE] (dus de 404 van IE staat er dan bijvoorbeeld) dan is de server down...
Maarja.... dit is dus alleen om de webserver te controleren... en het bestandje moet bestaan..

Lekkere omweg, maar waarom makkelijk doen als het moeilijk kan ;)

  • DumbAss
  • Registratie: April 2002
  • Laatst online: 22-07 10:35
Kun je dan gewoon een remote bestandje (bv: Studhuis.xs4all.nl/online.php) includen?
Dan zit ik daar wel in $online='TRUE'; ofzo

Vanutsteen.nl => nerds only | iRacing


  • Spleasure
  • Registratie: Juli 2001
  • Laatst online: 26-08 09:10

Spleasure

Ik hier?

Je kan geen remote php source includen, alleen het resultaat (dwz: wat er geechood is)

BTW heb je dat script van phpfreakz? Ik had namelijk een script daarop gezet dat hier verdacht veel op lijkt :P

Een werkend voorbeeld is te zien op: http://www.xboxworld.nl/~jorrit/server.php

  • DumbAss
  • Registratie: April 2002
  • Laatst online: 22-07 10:35
Spleasure schreef op 01 oktober 2002 @ 19:27:
BTW heb je dat script van phpfreakz? Ik had namelijk een script daarop gezet dat hier verdacht veel op lijkt :P
hèhèhè. Inderdaad dat klopt. Leuk script in ieder geval.

Vanutsteen.nl => nerds only | iRacing


  • ruuds
  • Registratie: Maart 2001
  • Laatst online: 13:54
DumbAss schreef op 01 oktober 2002 @ 16:12:
Kun je dan gewoon een remote bestandje (bv: Studhuis.xs4all.nl/online.php) includen?
Dan zit ik daar wel in $online='TRUE'; ofzo
nee zoals Spleasure al zei, maar je kan wel de inhoud van dat iframe uitlezen

Verwijderd

nog makkelijker:
Include een javascript filetje van die server in je HTML...
In die file staat bijv. variable 'online'.

In je html check je dan onload() of die variabele gezet is..
Zo ja, is de server online
Zo nee, is de server offline

  • Spleasure
  • Registratie: Juli 2001
  • Laatst online: 26-08 09:10

Spleasure

Ik hier?

euhm, je kan ook via http bestanden includen: $contents = readfile('http://www.server.com/bestand.php'); .....
Pagina: 1