Bonjour,
J'aimerai détecté si la connexion internet est fonctionnelle (ping d'un site ou autre)
comment puis je le faire ?
merci
Bonjour,
J'aimerai détecté si la connexion internet est fonctionnelle (ping d'un site ou autre)
comment puis je le faire ?
merci
salut,
cette question a deja ete posée sur ce forum essaye de faire des recherches..
exacte,
désolé, j'avais zappé.
merci et bonne année.
http://www.developpez.net/forums/vie...light=internet
j'ai ce code :
que j'appelle avec un timer (toute les 100 ms), seulement, quand je déconnecte mon cable réseau et que je n'ai donc plus internet,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 BOOL IsConnected(void) { DWORD flags; return InternetGetConnectedState(&flags, 0); }
il met bien 5 a 10 seconde pour le capter,
est ce possible de le détecter plus rapidement ?
et puis, si la connexion ne fonctionne pas (erreur de dns par exemple) il ne le capte pas.
j'ai bien tenté de la modifier par :
Seulement voila, ca rallentis grandement le soft
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 BOOL IsConnected(void) { DWORD flags; HINTERNET hInternetSession, hHttpSession; BOOL connected = InternetGetConnectedState(&flags, 0); if (connected) { connected = FALSE; hInternetSession = InternetOpen ("test", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL) ; if (hInternetSession) { hHttpSession = InternetOpenUrl( hInternetSession, "http://www.google.com", NULL, 0, INTERNET_FLAG_NO_CACHE_WRITE, 0 ) ; connected = hHttpSession != FALSE; if (connected) InternetCloseHandle( hHttpSession ); } InternetCloseHandle (hInternetSession) ; } return connected; }
Que faire ?
tu as pensé a combiner ton test avec ça ?:
http://c.developpez.com/faq/vc/?page...wDetectNetwork
j'ai testé ca oui, mais la présence du réseau n'est pas l'info que je cherche,
à savoir si je peux me connecter à un site précis
et puis les pc qui ont internet en direct sans aucun réseau échouerait ce test (si j'ai bien pigé)
j'ai essayer de remplacé par ca :
Si la connexion est ok, ca marche, sinon, ca attend indefiniment,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 BOOL IsConnected(void) { DWORD flags; BOOL connected = InternetGetConnectedState(&flags, 0); if (connected) connected = InternetCheckConnection("http://www.google.fr", FLAG_ICC_FORCE_CONNECTION, 0); return connected
et en remplacant le drapeau FLAG_ICC_FORCE_CONNECTION par NULL, j'obtiens toujours un retour null
la fonction internetgetConnectedState doit avoir son argument lpdwFlags renseigné.
le flag INTERNET_CONNECTION_OFFLINE me semble intéressant a tester.
voir MSDN.
j'ai bien tenté de mettre
flags = INTERNET_CONNECTION_OFFLINE;
avant la fonction, le fonctionnement est le même,
il détecte la non connexion réseau mais pas la non connexion internet (pour tester cela, je change la valeur dns pour une bidon)
Et si tu lances IE ça marche mieux ?
il attend pas plutôt qu'il y ait timeout ?Si la connexion est ok, ca marche, sinon, ca attend indefiniment,
IE fonctionne quand le dns est ok uniquement, normal quoi,
et non, ca ressemble pas à un timeout (je l'arrete au bout de 2-3 minutes)
jvois vraiment pas
Je veux dire, quand le dns est mauvais, IE affiche rapidement une erreur ?
tiens... j'avais pas capté,
non, il met un bien 30s a 1 minute
je tente une nouvelle approche mais je me heurte a un nouveau problème snif ...
jme suis dit que j'allais tenter de pinger mon site avec l'API IP Helper,
en utilisant getaddrinfo pour recuperer l'adresse IP d'un site via son url, puis IcmpSendEcho pour envoyer le ping,
je rajoute donc : #include "Wspiapi.h"
et la, j'ai 50 erreurs dans ce fichier .... pkoi ?????
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WSPiApi.h(39) : error C2061: syntax error : identifier 'socklen_t'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WSPiApi.h(168) : error C2027: use of undefined type 'addrinfo'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WSPiApi.h(34) : see declaration of 'addrinfo'
...
Et si tu fais un ping depuis cmd.exe il met pas 30s à 1 minute lui aussi ?
Tu veux vérifier si le net est dispo, ben il l'est. Ce qui ne l'est pas dans ton cas c'est le DNS, et c'est pas pareil.
ok, je vois,
ben ce qui m'interresse à moi en fait, c'est de savoir si la connexion vers un site est ok,
c'est pour ca que j'essai de pinger sanssucces
Certains sites ne répondent pas à un ping. Essaye plutôt une requête HTTP si c'est un site web. Elle peut mettre longtemps à s'exécuter si la bande passante est saturée, etc...
En fait, InternetCheckConnection devrait faire l'affaire.
c'est ce que je suis en train de coder mais j'ai un ptit soucis avec les thread
jpasse par la pour ne plus rallentir l'appli
le but etant d'affiché connecté ou non sur la fiche
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager