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

C++Builder Discussion :

Connection cable reseau RJ 45


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut Connection cable reseau RJ 45
    Bonjour,
    je cherche à connaître si mon cable rj45 est bien connecté à ma carte réseau. Qelqu'un connait une façon de procéder?
    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 134
    Par défaut
    Et bien tu peux faire un ping par exemple (soit en local soit sur un site web).

  3. #3
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Ben mon soucis est que lorsque j'envoie une commande ping (pour réaliser mon application) et que le cable est débranché j'ai un msg d'erreur. Donc je cherche une autre methode pour detecter le cable.
    Une autre methode doit exister car quand on branche un cable sur le pc windows le détecte. L'idéal serait de savoir comment il fait cela.

  4. #4
    Membre éclairé Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Par défaut
    Salut, moi je m'étais amusé a savoir si une connexion internet existait ou non sur le PC. Bon il y a certainement mieux que ce que j'ai fais mais bon ... si ça peux aider ! J'ai examiner tout simplement ce que retournait le "ping" et en fonction, afficher si la cnx est reussi ou non.
    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
     
    char ligne [3];
    system("ping www.free.fr -n 1 > c:/adresse_ip.txt"); // 1 envoi de ping
     
    FILE *fp = fopen("c:/adresse_ip.txt", "r");
     
    if(fp == NULL)
    {
        printf("Erreur ouverture fichier\n");
        system("PAUSE");
        return EXIT_FAILURE;
    }
     
    fgets(ligne, 3, fp);
     
    if(strcmp(ligne, "La") == 0) 
    {
        printf("Acces a internet impossible\n\n");
        system("PAUSE");
        return EXIT_FAILURE;
    }
    else
    {
        printf("Acces a internet effectue\n\n");
        system("PAUSE");
        return EXIT_SUCCESS;
    }

  5. #5
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    ca peut être intéressant je vais essayé de regarder comment ta fais.
    Si qqun a une methode plus simple c'est vrai que se serait mieux.
    Merci à vous

  6. #6
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    Bonjour,

    si le ping vous retourne un message d'erreur, ne serait-il pas possible de le traiter à travers le couple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Try
    {
    }
    Catch(...)
    {
      // Si je passe par là, c'est qu'il y a un problème...
    }

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 134
    Par défaut
    la méthode avec le ping fonctionne... Dsl je ne vois pas d'autres solutions.

  8. #8
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Donc si j'ai bien compris il n'existe pas de fonction toute prête pour cela.
    Je vais tester la methode ping alors.

  9. #9
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Le soucis est que j'utilise déjà la methode ping dans mon prog et je souhaite faire cette detection autrement.
    Windows fait comment pour detecter le cable reseau?

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonjour,

    Tu peux peut être penser à utiliser l'API 'IsNetworkAlive'

    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
     
    typedef BOOL (WINAPI* pFonction) (LPDWORD);// Pour la fonction IsNetworkAlive().
     
    //...
     
     
     //Deuxième Test: on test l'existance d'un réseau
      HMODULE hDLL=LoadLibrary("sensapi.dll");   // Charger la DLL "sensapi.dll":
      pFonction IsNetworkAlive=(pFonction) GetProcAddress(hDLL,"IsNetworkAlive");
      DWORD Network;
      BOOL alive=IsNetworkAlive(&Network);
      FreeLibrary(hDLL);
      if (!alive)
        return FALSE;
     
    //...
    Malheureusement, celle-ci semble ne pas fonctionner correctement derrière un routeur.
    Pour ma part, j'ai fini par revenir à la bonne vieille méthode du ping.

    Benjamin

  11. #11
    Membre éprouvé
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Par défaut
    Bonjour,

    J'utilise pour ma part l'API GetAdaptersAddresses pour détecter si le câble réseau est toujours connecté.

    Pour plus d'infos : http://msdn2.microsoft.com/en-us/library/aa365915.aspx

    et pour un sample et une démo : http://www.ipv6style.jp/en/apps/20060320_2/index.shtml

    Nicolas

  12. #12
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Alors je suis condamné à trouver une autre solution, mais moi même je n'y arrive pas....
    Quelqu'un peut m'aider encore une fois????

  13. #13
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    La méthode du ping ne vaut rien.

    Pour la simple raison, qu'il fait un recouvrement par ton DNS, donc si ton DNS est foireux, tu ne sauras rien pinger.

    Il doit y avoir une API pour ce genre de choses, suffit de regarder sur internet. Windows y arrive bien, et doit certainement posséder une bête fonction indiquant l'état du connecteur. D'habitude, à regarder dans les registres de la carte réseau.

  14. #14
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    C'est exactement ca que je cherche mais je ne trouve pas "cette bête fonction". Si tu trouves d'autres infos n'hesite pas à m'en faire part

  15. #15
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Salut, j'ai rien tester, mais je voulais vous faire part de certaines informations. Je crois que c'est la fonction GetIfEntry que vous chercher.
    The GetIfEntry function retrieves information for the specified interface on the local computer.
    - http://msdn2.microsoft.com/en-us/library/aa365939.aspx

    On y passe un pointeur de structure MIB_IFROW dans laquelle on trouve dwOperStatus qui a comme valeurs:
    IF_OPER_STATUS_NON_OPERATIONAL:
    LAN adapter has been disabled, for example because of an address conflict.

    IF_OPER_STATUS_UNREACHABLE:
    WAN adapter that is not connected.

    IF_OPER_STATUS_DISCONNECTED:
    For LAN adapters: network cable disconnected. For WAN adapters: no carrier.

    IF_OPER_STATUS_CONNECTING:
    WAN adapter that is in the process of connecting.

    IF_OPER_STATUS_CONNECTED:
    WAN adapter that is connected to a remote peer.

    IF_OPER_STATUS_OPERATIONAL:
    Default status for LAN adapters
    - http://msdn2.microsoft.com/en-us/library/aa366836.aspx

    Maintenant, c'est à vous de regarder cette piste

  16. #16
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    En effet ca ressemble à se que je cherche mais le souci je ne sais pas trop quoi mettre comme paramètre....je ne sais pas se qu'est un MIB_IFROW

  17. #17
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Citation Envoyé par Général03 Voir le message
    En effet ca ressemble à se que je cherche mais le souci je ne sais pas trop quoi mettre comme paramètre....je ne sais pas se qu'est un MIB_IFROW
    C'est pourquoi j'ai mis un lien vers le site: http://msdn2.microsoft.com/en-us/library/aa366836.aspx
    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
    typedef struct _MIB_IFROW {
      WCHAR wszName[MAX_INTERFACE_NAME_LEN];
      DWORD dwIndex;
      DWORD dwType;
      DWORD dwMtu;
      DWORD dwSpeed;
      DWORD dwPhysAddrLen;
      BYTE bPhysAddr[MAXLEN_PHYSADDR];
      DWORD dwAdminStatus;
      DWORD dwOperStatus;
      DWORD dwLastChange;
      DWORD dwInOctets;
      DWORD dwInUcastPkts;
      DWORD dwInNUcastPkts;
      DWORD dwInDiscards;
      DWORD dwInErrors;
      DWORD dwInUnknownProtos;
      DWORD dwOutOctets;
      DWORD dwOutUcastPkts;
      DWORD dwOutNUcastPkts;
      DWORD dwOutDiscards;
      DWORD dwOutErrors;
      DWORD dwOutQLen;
      DWORD dwDescrLen;
      BYTE bDescr[MAXLEN_IFDESCR];
    } MIB_IFROW, 
     *PMIB_IFROW;

Discussions similaires

  1. impossible de se connecter via cable reseau
    Par 007007 dans le forum Ubuntu
    Réponses: 3
    Dernier message: 11/07/2009, 19h31
  2. probleme de connection a messenger par cable reseau
    Par punks dans le forum Développement
    Réponses: 2
    Dernier message: 10/02/2006, 15h55
  3. [RMI] Probleme de timeout si cable reseau debranché
    Par rohel dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 30/11/2005, 10h37
  4. Connection Cable - plusieurs carte réseau
    Par Ultra-FX dans le forum Réseau
    Réponses: 7
    Dernier message: 08/02/2005, 09h06
  5. Fonction pour savoir si un ordi est connecté au reseau
    Par LitteulKevin dans le forum Windows
    Réponses: 17
    Dernier message: 13/09/2004, 14h12

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