Vérifier si l'ordinateur est connecté à internet ?

cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005 - 5 mars 2005 à 10:35
cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005 - 6 mars 2005 à 13:33
Bonjour à vous tous,
alors voila, j'ai un problème car je me sers de Easy Php en local et je
voudrais vérifier (rapidement, sans attendre une erreur par exemple) si
l'ordinateur est connecté à Internet ? je ne sais pas si cela est
possible en php, ou même en javascript... Merci de votre aide.

18 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 mars 2005 à 10:51
Salut,



si tu connais un serveur toujours en ligne (celui de google par exemple)



tu fais un fsockopen :



if(fsockopen('www.google.fr',80))

{

//pc connecté à internet

}

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005
5 mars 2005 à 12:17
cela ne fonctionne pas car en fait, il recherche indéfiniment le serveur... C'est pour ça que je me demande si Php peut faire ça, je devrais peut-être plus regarder vers flash mais j'aurais probablement encore plus de mal vu mes connaissances limitées de flash...
0
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
5 mars 2005 à 12:35
salut

si si le code de antomicro fonctionne trés bien, pas de probléme de ce coté là

ton probléme vient surement d'ailleurs !

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
0
cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005
5 mars 2005 à 12:48
Et bien voici mon code alors. je n'ais pas d'erreur mais la page n'en termine pas de chercher le serveur:
<?
$do1= fsockopen('www.google.fr',80);
if($do1)
{
echo"Ordinateur connecté et serveur ";
$go= fsockopen("ftp.monsiter.net", 21);
if(!$go){ echo"off line."; }
else{ echo"on line.";}
}
else {
echo"Ordinateur non connecté au résau internet. Nous travaillerons donc en local.";
}
?>

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 mars 2005 à 12:56
Si tu enlèves ton code pour ne mettre que ça :



<?php


if(fsockopen('www.google.fr',80))

{

//pc connecté à internet

}

?>



et que ton PC est ou non connecté à internet, tu as toujours le lag ?



a +


<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
5 mars 2005 à 13:05
ton code marche trés bien chez moi !

j'ai essayé ça :

<?php

$do1= fsockopen('www.google.fr',80);

if($do1)

{

echo'Ordinateur connecté et serveur';

$go= fsockopen("ftp.free.fr", 21);

if(!$go){ echo'off line.'; }

else{ echo'on line.';}

}

else {

echo'Ordinateur non connecté au résau internet. Nous travaillerons donc en local.';

}

?>

et ça tourne bien


Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
0
cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005
5 mars 2005 à 13:06
Oui, toujours the gros lag.... je vois pas trop d'où ça peut venir.... Par contre, au bout de pas mal de secondes, il écrit une erreur :
<!--StartFragment --> Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in c:\program files\easyphp1-7\www\ffss45\index.php on line 2

Warning: fsockopen(): unable to connect to www.google.fr:80 in c:\program files\easyphp1-7\www\ffss45\index.php on line 2
0
cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005
5 mars 2005 à 13:16
Oui, le code tourne bien sauf si jamais je ferme ma connexion internet... et c'est ça que je veux vérifier, s'il n'y a pas de connexion internet, on se casse pas la tête et on tourne en local, sinon on vérifie que le serveur internet fonctionne et on tourne grâce à lui. Mais sinon, il est vrai que ton code fonctionne très bien ! et je t'en remerci.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 mars 2005 à 13:56
Enlève-moi cette variable $do1 et $go, ça sert à rien sinon prendre de la ram supplémentaire


<?php

if(
fsockopen('www.google.fr',80)
)

{

echo'Ordinateur connecté et serveur';

if(!
fsockopen("ftp.free.fr", 21)
)

{

echo'off line.';

}

else

{

echo'on line.';

}

}

else

{

echo'Ordinateur non connecté au résau internet. Nous travaillerons donc en local.';

}

?>

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005
5 mars 2005 à 14:23
Oui chef ! lol c'est fait mais ça me résout quand même pas mon problème :-/ Sinon, j'aurais penser peut-être passer par <!--StartFragment --> LoadVars de flash mais je ne sais ni si elle peut servir, ni m'en servir...
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 mars 2005 à 15:10
Tu as un pare-feu ?



Si oui désactive-le pour tester, mais bon ça devrait te mettre "hors ligne"

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 mars 2005 à 15:13
Heu pareil, je vois "fsockopen(machin,21)"



c'est normal, tu ne dois pas tenter une connexion ftp par le port 21 avec fsockopen, c'est du http...



pour te connecter en ftp : http://fr.php.net/manual/fr/ref.ftp.php



 ftp_connect()



a +


<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005
5 mars 2005 à 15:26
Alors, sans le firewall et en changeans le ftp par un http sur le port 80, il met environ 15-20 secondes à chercher et écrit :
<!--StartFragment --> Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in c:\program files\easyphp1-7\www\ffss45\index.php on line 2

Warning: fsockopen(): unable to connect to www.google.fr:80 in c:\program files\easyphp1-7\www\ffss45\index.php on line 2
Ordinateur non connecté au résau internet. Nous travaillerons donc en local.

Pour cacher les erreurs, j'ai mis un @ devant mais bon, je ne suis pas sur que cela soit une très bonne solution. De plus, est-ce qu'il ne serait pas possible de lui dire de chercher genre pendant 5 secondes et si il trouve rien, il affiche qu'il n'y a pas de connexion ?
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 mars 2005 à 16:54
Ne mets pas non plus de http, il faut le www c'est tout, pas de http devant



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005
5 mars 2005 à 17:39
le http devant a été retiré, mais cela ne fonctione toujours pas comme je le souhaiterait: tout va bien quand il y a une connexion internet, il arrive à reconnaitre si le serveur est en ligne ou hors ligne. Mais quand il n'y a plus de connexion, le script peine, il met beaucoup de temps à répondre pour dire à la fin hors ligne (j'ai mis @ devant sinon, il affiche des erreurs en plus). Donc en fait, cela fonctionne très bien mais si le temps de réponse pouvais être moins long ce serait bien. Sinon et bien j'essairais de faire avec.
P.S: je peux essayer de diminuer le temps d'exécution du script dans php.ini mais j'ai peur qu'une fois la page terminée, il n'éxécute pas tout le script en entier. il faudrait limiter seulement cette partie du script au niveau temps)
0
cs_JulienC Messages postés 13 Date d'inscription samedi 9 février 2002 Statut Membre Dernière intervention 26 juin 2005
6 mars 2005 à 13:04
Salut,

Regardes la syntaxe entière de fsockopen(), elle permet de mettre un timeout en dernier paramètre. Ca doit être quelque chose de ce style :
fsockopen($URL, $port, $err_num, $err_str, $timeout)
Par contre, il me semble que sous Easy-Php, le timeout fonctionne mal ou pas du tout (à vérifier).

Sinon, il existe peut-être une autre solution, mais ce n'est surement pas le meilleure (appel d'un exécutable ). Ce qui est sûr c'est qu'elle marche :
Appeler la fonction DOS "ipconfig" : si dans la sortie il y a une adresse internet, alors la connexion est établie, sinon, le PC n'est pas connecté à internet. Temps d'exécution, moins d'une seconde dans les 2 cas
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
6 mars 2005 à 13:05
Le problème est que tu dois utiliser la fonction exec ou encore system
par exemple, donc sur les hébergements mutualisés ça ne fonctionera
pas, par contre en intranet c'est nikel ;-)



a ++

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_MiniKiller Messages postés 13 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 18 septembre 2005
6 mars 2005 à 13:33
J'ai utilisé le paramètre timeout de fsockopen, cela fonctionne par
moment on va dire lol. La première fois quand la connexion ne
fonctionne pas, il semble respecter ce paramètre, mais si je recharge
la page toujours sans connexion internet, il semble respecter les 30
secondes du php.ini Mais sinon, je suis déjà très heureux que ça
fonctionne à peu près. Je vais quand même essayer de me reseigner sur
ta deuxième méthode pour voir si ça peut pas être mieux. En tous cas,
merci beaucoup à vous !

0
Rejoignez-nous