checke om domain/ip/adresse/port er online

Tags:    php

jeg skal lave en servers.php hvor der skal liste hvilken irc servere som er online og hvilke der ikke er samt. Evt. dato for sidste check?
jeg har pt denne som IKKE VIRKER (og Loader utroligt langsomt !)?
<?php
$ip = "herrohr.freshirc.de";
$ftpport = "6667";
if (fsockopen($ip, $ftpport, $errnr, $errstr, 30)) {
Echo 'redevilz.freshirc.de er online';
}
else {
echo 'herrohr.freshirc.de er offline';
}
?>

1. Det med ip check virker for mig kun hvis ip = "localhost"
2. Jeg skal bruge en så jeg kan checke om IRC serverene er online f.eks. herrohr.freshirc.de på port: 6667




if (fsockopen($ip, $ftpport, $errnr, $errstr, 30))

De 30 sekunder styre jo Timeout. Dette bør sættes til maks 2 sekunder. Jeg ved ikke om det er nemmere, men det kunne være du kunne bruge "ping" istedet for. Den anden metode åbner en socket til adressen måske ikke er helt pæn programmering....

http://dk.php.net/manual/en/function.fsockopen.php

HVis du vil bruge "ping" prøv da at se
http://dk.php.net/manual/en/ref.exec.php

Ved ikke om det virker med det er vel et forsøg værd

Mvh
Janus S. Andersen




http://dennis.moellegaard.dk/v4/php/ircup.php?source=1

Dette virker fint for mit vedkommende. Men som Janus siger, så er den timeout lidt stor.

Lad være med at bruge ping - mange firewalls filtrerer det fra, og det viser sådanset ikke om irc-serveren er oppe - blot om maskinen svarer på ping.

Dennis Møllegaard Pedersen
http://dennis.moellegaard.dk




http://dennis.moellegaard.dk/v4/php/ircup.php?source=1

Fint script men se lige her
http://www.vipez.dynu.com/danish/index.php?c=servers

jeg har en serverlist som den skal vise hvilke der er online og hvilke der ikke er.

1. kan jeg have flere (bare ændre $serverstr) til $serverstr2 ?)


[Redigeret d. 11/02-04 21:06:54 af VIPez]




Lav en funktion - og kald den for hver server, i stil med:

function isup($server..) {
...
}

isup("irc1.tld:66667");
isup("irc2.tld:66667");

osv.


Dennis Møllegaard Pedersen
http://dennis.moellegaard.dk




Lav en funktion - og kald den for hver server, i stil med:
function isup($server..) {
...
}
isup("irc1.tld:66667");
isup("irc2.tld:66667");


jeg er ikke så god til php.. kan du give et eks. ?




Læs http://dk2.php.net/functions - det er en fundamental del af programmering generelt, så hvis du vil lære php, så kan du ligeså godt prøve nu.

Dennis Møllegaard Pedersen
http://dennis.moellegaard.dk



t