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

Windows Forms Discussion :

Test Réseau (Ping)


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut Test Réseau (Ping)
    Bonjour

    J'ai une application autonome qui effectue des téléchargements par le web et qui doit donc être capable de se vérifier avant toute chose si elle a accès à internet
    pour ça j'ai choisi de la faire pinger yahoo et google (très faible taux de proba que les deux sites soient down en même temps).
    Jusque là pas de problème, seulement, si je coupe la connexion réseau j'ai le droit à un joli plantage du programme car la fonction ping "crash" je voulais savoir ou était mon erreur

    voici le code

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
                // Pinguer un machine
                Ping monPing = new Ping();
                //l'addresse du ping
                PingReply Reply = monPing.Send("www.google.com");
                //l'exception
                PingException Pexcep1 = new PingException(PingExcep1);
                Debug.Write(PingExcep1);
                // si l'exception est déclanchée on retente un deuxième ping sur yahoo
                if (PingExcep1 !="0")
                {
                    Ping monPing1 = new Ping();
                    PingReply Reply1 = monPing.Send("www.yahoo.com");
                    PingException Pexcep2 = new PingException(PingExcep2);
                    Debug.Write(PingExcep2);
                    if (PingExcep2 != "0")
                    {
                        Process.Start(new ProcessStartInfo(@SimplOrdiPath));
                        Application.Exit();
                    }
     
                }
                    // si jamais google est injoignable on test avec yahoo
                else if (Reply.Status == IPStatus.TimedOut)
                {
                    Ping monPing2 = new Ping();
                    PingReply Reply2 = monPing.Send("www.yahoo.com");
                    if (Reply.Status == IPStatus.TimedOut)
                    {
                        Process.Start(new ProcessStartInfo(@SimplOrdiPath));
                        Application.Exit();
                    }
                }
    PingExcep1 et 2 sont deux variables strings déclarées et initialisées plus haut à la valeur "0"


    voila voila

    en espérant que vous puissiez m'éclairer

    merci d'avance

    Rogue 9

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Pourquoi ne pas utiliser les dll natives en allant ici

    tu pars dans la section Réseau et tu clique sur la question :

    Comment savoir si mon ordinateur est connecté à Internet?.

  3. #3
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par Rogue 9 Voir le message
    en espérant que vous puissiez m'éclairer
    Avant ça, je te conseille fortement de regarder un tuto sur les exceptions, parce que tu ne les utilises pas correctement

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Avant ça, je te conseille fortement de regarder un tuto sur les exceptions, parce que tu ne les utilises pas correctement
    ouais, et pas seulement sur les exceptions je crois...
    Voilà comment faire ce que tu veux, un peu plus proprement :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    List<string> hostnames = new List<string>();
    hostnames.Add("www.google.com");
    hostnames.Add("www.yahoo.com");
     
    Ping monPing = new Ping();
    PingReply Reply = null;
    bool connected = false;
     
    foreach(string hostname in hostnames)
    {
        try
        {
            Reply = monPing.Send("www.google.com");
        }
        catch(Exception ex)
        {
            Debug.Print(ex);
        }
     
        if (Reply != null || Reply.Status == IPStatus.Success)
        {
            connected = true;
            break;
        }
    }
     
    if (connected)
    {
        MessageBox("connecté !");
    }

  5. #5
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    C'est complètement faux de se baser sur un ping pour essayer de savoir si on sera en mesure d'atteindre une ressource sur le net.
    Ce qu'il faut faire c'est essayer de se connecter et gérer les exceptions.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par _skip Voir le message
    C'est complètement faux de se baser sur un ping pour essayer de savoir si on sera en mesure d'atteindre une ressource sur le net.
    Ce qu'il faut faire c'est essayer de se connecter et gérer les exceptions.
    Je suis d'accord que ce n'est pas parce que tu peux pinger une machine que tu pourras t'y connecter (et inversement), mais si un ping sur google réussit, c'est que tes paquets atteignent bien le serveur de google et en reviennent. Et ça prouve donc que tu es connecté à Internet, ce qui est le but si j'ai bien compris

  7. #7
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    je suis bien conscient que c'est une méthode plus que bancale, mais j'ai cherché pendant pas mal de temps ( après j'ai peut être utiliser les mauvais mots clés (surement même)) et a chaque fois les ressources disaient qu'il n'existait pas de méthode pour vérifier la connexion, car on peut être connecté a un réseau sans être connecté a internet, et que là méthode la plus sur restait de ping un site web (en gérant les exceptions) afin de vérifier la connectivité au net.

    merci pour vos réponses

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Sinon tu peux toujours essayer de faire une requête HTTP sur Google avec HttpWebRequest. Mais je ne vois pas ce que ça t'apportera de plus. Si c'est juste l'accès Internet que tu veux vérifier, le ping suffit à mon avis, cf. mon post précédent (je sais pas si tu l'as vu, on a posté presque en même temps)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Script de test commande ping
    Par cesar33 dans le forum VBA Word
    Réponses: 2
    Dernier message: 09/02/2010, 12h13
  2. test 3 PING avant procedure
    Par apetroff dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/12/2009, 15h40
  3. test de ping
    Par cmoibal dans le forum C
    Réponses: 5
    Dernier message: 03/01/2008, 12h33
  4. probleme réseau : ping a sens unique
    Par be_on_edge dans le forum Développement
    Réponses: 14
    Dernier message: 18/09/2004, 10h01

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