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
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
Et bien tu peux faire un ping par exemple (soit en local soit sur un site web).
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.
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; }
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
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... }
la méthode avec le ping fonctionne... Dsl je ne vois pas d'autres solutions.
Donc si j'ai bien compris il n'existe pas de fonction toute prête pour cela.
Je vais tester la methode ping alors.
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?
Bonjour,
Tu peux peut être penser à utiliser l'API 'IsNetworkAlive'
Malheureusement, celle-ci semble ne pas fonctionner correctement derrière un routeur.
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; //...
Pour ma part, j'ai fini par revenir à la bonne vieille méthode du ping.
Benjamin
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
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????
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.
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
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.
- http://msdn2.microsoft.com/en-us/library/aa365939.aspxThe GetIfEntry function retrieves information for the specified interface on the local computer.
On y passe un pointeur de structure MIB_IFROW dans laquelle on trouve dwOperStatus qui a comme valeurs:
- http://msdn2.microsoft.com/en-us/library/aa366836.aspxIF_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
Maintenant, c'est à vous de regarder cette piste![]()
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;
Partager