connessione ad un server

HO la necessita di connettermi a un ip di un server ( gameserver ) e mostrare alcune info , ma le info le lascio perdere io devo capire come vedere se il server è online o offline e mostrarlo ,come posso fare?

inviato 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Penso tu debba fare un ping tramite php...

Dato che se fai un  ping e la macchina non risponde nelòla stringa di risposta avrai "Richiesta scaduta" dovrai cercare all'interno della risposta del ping la presenza di questa stringa, il che verificherebbe che il server non risponde, se questa stringa non c'è, il server risponde quindi probabilemnte è online...

Una cosa del genere:

$response = shell_exec("ping xxx.xxx.xxx.xxx");
if(false === strpos($response,"Richiesta Scaduta"))
 echo "server offline o firewallato";
else
 echo "server online";

questo è quello che mi è venuto in mente, magari ci saranno metodi migliori...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X
<?php

$response = shell_exec("ping 194.244.48.198");

if(false === strpos($response,"Richiesta Scaduta"))

 echo "server offline o firewallato";

else

 echo "server online";

?>

mah il server è online :( non so come mai non lo trova

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

sto provando lo script in locale potrebbe essere per quello?

cmq ho visto il risultato del ping è

Esecuzione di Ping 194.244.48.198 con 32 byte di dati:

Risposta da 194.244.48.198: byte=32 durata=84ms TTL=55

Risposta da 194.244.48.198: byte=32 durata=77ms TTL=55

Risposta da 194.244.48.198: byte=32 durata=71ms TTL=55

Risposta da 194.244.48.198: byte=32 durata=71ms TTL=55

Statistiche Ping per 194.244.48.198:

Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi),

Tempo approssimativo percorsi andata/ritorno in millisecondi:

Minimo = 71ms, Massimo = 84ms, Medio = 75ms

quindi lo pinga SOLO che mi dice sempre OFFLINE

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
modificato 10 anni fa
X 0 X

prova così:

<?php

$response = shell_exec("ping 194.244.48.198");
if(false !== strpos($response,"Richiesta Scaduta"))
 echo "server offline o firewallato";
else
 echo "server online";
?>

ciao

risposto 10 anni fa
Lore
Lore
1
X 0 X

non c'è un modo più veloce di vedere se è online senza pingarlo? il processo di ping sono +- 15 secondi :( credo sia frustrante aggiungere 15 secondi al caricamento di ogni pagina :(

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X
non c'è un modo più veloce di vedere se è online senza pingarlo? il processo di ping sono +- 15 secondi :( credo sia frustrante aggiungere 15 secondi al caricamento di ogni pagina :(

Sinc non lo so se ci sia un metodo + veloce...

CMQ 15 secondi mi sembrano sinceramente tanti...io ho provato e al max ci impiega 4 secondi...

Se ci impiega 15 secondi in effetti è un po' troppo...non so se magari con le socket puoi fare qualcosa, :dunno: , dovresti provare,ma non so neanche se siano la soluzione giusta...

Prova a sentire anche altri pareri magari...:dunno:

Ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

LOL ho risolto in questo modo

<?php

$connect = @fsockopen('194.244.48.198','28170', $errno, $errstr, 30);

if(! $connect)

 echo '<p class="offline">server offline</p>';

else

 echo '<p class="online">server online</p>';

?> 

ora non impiega nulla a vedere se è online :) nel caso non lo trovasse si ferma a 30 secondi e se non lo trova dice che è offline.

grazie dell'aiuto

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Niente, figurati...

Una cosa, occhio a usare la @ davanti alle funzioni

@fsockopen('194.244.48.198','28170', $errno, $errstr, 30);

perchè in caso di errori non te lo segnala, ma questo è + che altro un gusto personale  :P

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

si lo so l'ho messo così nel caso va in timeout dice solo server offline :) senno è antiestetico

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda