Retrouver le nom de la connection réseau

Signaler
Messages postés
6
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
23 juillet 2004
-
Messages postés
6
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
23 juillet 2004
-
Bonjour

je me bats avec les API Windows et Visual C++ pour retrouver le nom de la connection réseau. le fameux "Connection au réseau local" par défaut.

le programme doit fonctionner sous W2K et sous Xp.

j'ai commencé à chercher du coté de l'api "iphlpapi" qui est utilisée par ipconfig. GetAdaptersInfo() me donne la référence de la connection du genre {xxxxx-xxx-xxxx-xxxxxxxx} mais pas le "friendly name".
et avec MprConfigGetFriendlyName () de l'api mprapi je pensais tenir mon bonheur mais ce n'est pas ça non plus.

quelqun aurait il une autre piste ou mieux la solution svp ?

10 réponses

Messages postés
76
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
17 janvier 2005

Slt

Je crois bien que c'est bien 'GetAdaptersInfo', qui prend en parametre une structure type 'PIP_ADAPTER_INFO' et un des elements de la structure est '->Description' qui te donne le nom de l'interface réseau énumérée.

Genre chez moi cette fonction me retourne :

NVIDIA nForce MCP Networking Controller

héhé il font aussi des cartes réseaux ;)

Attention, si je me trompe pas, GetAdapterInfo te renvoi une liste chainée, a toi apres a te ballader ds cette liste.

Bye

3psilon
Messages postés
76
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
17 janvier 2005

Slt

Je crois bien que c'est bien 'GetAdaptersInfo', qui prend en parametre une structure type 'PIP_ADAPTER_INFO' et un des elements de la structure est '->Description' qui te donne le nom de l'interface réseau énumérée.

Genre chez cette fonction me retourne :

NVIDIA nForce MCP Networking Controller

héhé il faut aussi des cartes réseaux ;)

Attention, si je me trompe pas, GetAdapterInfo te renvoi une liste chainée, a toi apres a te ballader ds cette liste.

Bye

3psilon
Messages postés
6
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
23 juillet 2004

IP_ADAPTER_INFO->Description me donne "NDIS 5.0 driver"
ce n'est malheureusement pas ce que je cherche.

je souhaite le nom qui se trouve sous l'icone de ta connection réseau.

il est caché dans la base de registre quelque part par ici
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{A}\{B}\Connection\Name = "Connection au réseau local"

IP_ADAPTER_INFO->Name ne me donne que le descripteur B dans la base de registre et pas le contenu de la clé Name.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,
Tu peux avoir une description de l'adapter (nom de la carte réseau) avec GetAdaptersInfo comme 3psilon a dit.

Pour avoir le nom de la connexion reseau (celui qu'on vois dans paremetre/connexion reseau) il faut utiliser GetAdaptersAddresses. Le membre FriendlyName de la structure IP_ADAPTER_ADDRESSES contient ce que tu veux (enfin il me semble). Attention ce membre est en unicode...
Messages postés
6
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
23 juillet 2004

on s approche du résultat escompté en effet avec GetAdaptersAddresses(), un petit WideCharToMultiByte() sur ->FriendlyName me donnerait satisfaction je pense.

il semblerait par contre d'après le MSDN que GetAdaptersAddresses() soit réservé à win XP ...

je bute maintenant sur un problème qui me déroute. je me retrouve avec une erreur de compilation.
'PMIB_ICMP_EX' : undeclared identifier

malgré les inclusions suivantes
#include <mprapi.h>
#include
#include

quel include ais je oublié ?
Messages postés
76
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
17 janvier 2005

Si je me souviens bien,

Iprtrmib.h installé par default avec VC ne contient pas la definition de
PMIB_ICMP_EX.

Je pense que tu pourras le trouver ds le dernier SDK.

Si une ame charitable pouvait confirmer mes dires ;)

Bye

3psilon
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,
Chez moi MIB_ICMP_EX est defini dans iprtrmib.h comme suit:
typedef struct _MIB_ICMP_EX
{
MIBICMPSTATS_EX icmpInStats;
MIBICMPSTATS_EX icmpOutStats;
} MIB_ICMP_EX,*PMIB_ICMP_EX;

et voici un lien avec les headers de la sdk 2003:
http://betouchi.free.fr/utile/headers.zip
Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
1
Messages postés
6
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
23 juillet 2004

@Magma: le code proposé liste les connection RAS moi c'est le LAN que je voudrais.

sinon pour mes problèmes d'include, merci pour le zip aardman mais j'ai déjà le SDK 2003 en entier sur ma machine.

je vous mets ci dessous la portion de code que je n'arrive pas à faire fonctionner , elle vient du MSDN.
j'ai mis dans les settings du projet, onglet ressource le répertoire include du SDK. Mais je me retrouve toujours avec des "undeclared identifier" sur le PIP_ADAPTER_ADDRESSES.

pourquoi tant de haine ????????

#include <mprapi.h>
#include
#include

...

PIP_ADAPTER_ADDRESSES pAddresses;
pAddresses = (IP_ADAPTER_ADDRESSES*) malloc(sizeof(IP_ADAPTER_ADDRESSES));
ULONG outBufLen = 0;
DWORD dwRetVal = 0;

// Make an initial call to GetAdaptersAddresses to get the
// size needed into the outBufLen variable
if (GetAdaptersAddresses(AF_INET,
0,
NULL,
pAddresses,
&outBufLen) == ERROR_BUFFER_OVERFLOW)
{
GlobalFree(pAddresses);
pAddresses = (IP_ADAPTER_ADDRESSES*) malloc(outBufLen);
}

// Make a second call to GetAdapters Addresses to get the
// actual data we want
if ((dwRetVal = GetAdaptersAddresses(AF_INET,
0,
NULL,
pAddresses,
&outBufLen)) == NO_ERROR)
{
// If successful, output some information from the data we received
while (pAddresses)
{
printf("\tFriendly name: %S\n", pAddresses->FriendlyName);
printf("\tDescription: %S\n", pAddresses->Description);

pAddresses = pAddresses->Next;
}
Messages postés
6
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
23 juillet 2004

bon j'ai trouvé comment compiler
il faut mettre ces includes ci

#include <stdio.h>
#include <winsock2.h>
#include

par contre je me fait jeter sous w2k où il trouve pas le point d'entrée de GetAdaptersAdresses.

vérifié dans la DLL Xp présent masi pas dans celle de W2k

donc je pleure.