Vérifier si l'ordinateur est connecté à internet ?
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 septembre 2005
-
5 mars 2005 à 10:35
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 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.
A voir également:
Aucune connexion n'a pu être établie car l'ordinateur cible l'a’a expressément refusée
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 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...
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 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
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 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.
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 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...
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 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 ?
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 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)
cs_JulienC
Messages postés13Date d'inscriptionsamedi 9 février 2002StatutMembreDernière intervention26 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
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 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 ;-)
cs_MiniKiller
Messages postés13Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 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 !