IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Détection de la connexion internet


Sujet :

MFC

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut Détection de la connexion internet
    Bonjour,

    J'aimerai détecté si la connexion internet est fonctionnelle (ping d'un site ou autre)

    comment puis je le faire ?

    merci

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    cette question a deja ete posée sur ce forum essaye de faire des recherches..

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    exacte,

    désolé, j'avais zappé.

    merci et bonne année.

    http://www.developpez.net/forums/vie...light=internet

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    j'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BOOL IsConnected(void)
    {
    	DWORD flags;
    	return InternetGetConnectedState(&flags, 0);
    }
    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,

    il met bien 5 a 10 seconde pour le capter,

    est ce possible de le détecter plus rapidement ?

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    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 :
    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;
    }
    Seulement voila, ca rallentis grandement le soft

    Que faire ?

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    tu as pensé a combiner ton test avec ça ?:
    http://c.developpez.com/faq/vc/?page...wDetectNetwork

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    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é)

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    j'ai essayer de remplacé par ca :

    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
    Si la connexion est ok, ca marche, sinon, ca attend indefiniment,
    et en remplacant le drapeau FLAG_ICC_FORCE_CONNECTION par NULL, j'obtiens toujours un retour null


  9. #9
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    la fonction internetgetConnectedState doit avoir son argument lpdwFlags renseigné.
    le flag INTERNET_CONNECTION_OFFLINE me semble intéressant a tester.
    voir MSDN.

  10. #10
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    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)

  11. #11
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    je seche ...

  12. #12
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Et si tu lances IE ça marche mieux ?
    Si la connexion est ok, ca marche, sinon, ca attend indefiniment,
    il attend pas plutôt qu'il y ait timeout ?

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    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

  14. #14
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Je veux dire, quand le dns est mauvais, IE affiche rapidement une erreur ?

  15. #15
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    tiens... j'avais pas capté,

    non, il met un bien 30s a 1 minute

  16. #16
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    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'

    ...

  17. #17
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    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.

  18. #18
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    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

  19. #19
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    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.

  20. #20
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [PHP 5.0] Détection de connexion internet
    Par launas dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2011, 15h39
  2. [C#] pb de détection de la connexion internet
    Par Crownigth dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/01/2009, 15h27
  3. détection de connexion internet
    Par Alexdezark dans le forum Langage
    Réponses: 4
    Dernier message: 26/08/2008, 09h57
  4. Détection de l'évènement connexion Internet
    Par Steff2 dans le forum Web & réseau
    Réponses: 6
    Dernier message: 05/01/2008, 01h28
  5. Réponses: 5
    Dernier message: 16/03/2004, 13h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo