Meilleur auteur de réponses
Récupération adresse MAC

Question
-
Bonjour, je code actuellement un scanner Wifi, et j'utilise donc wlan_available_network, j'arrive à récupérer toute les informations désirées, mais le problème étant que je voulais aussi récupérer l'adresse MAC du point d'accès. Or dans la structure de wlan_available_network impossible de trouver la MAc adresse :/
Quelqu'un saurait-il comment faire ?
Merci
Réponses
-
A en croire la conversation suivante http://www.developpez.net/forums/d141890/general-developpement/programmation-systeme/windows/developper-application-capable-lister-reseaux-wifi-disponibles/
Il faut utiliser WlanGetNetworkBssList au lieu de WlanGetAvailableNetworkList.
Paul Bacelar, Ex - MVP VC++- Proposé comme réponse Ciprian Duduiala lundi 20 juin 2011 11:31
- Marqué comme réponse Ciprian Duduiala jeudi 23 juin 2011 06:03
Toutes les réponses
-
A en croire la conversation suivante http://www.developpez.net/forums/d141890/general-developpement/programmation-systeme/windows/developper-application-capable-lister-reseaux-wifi-disponibles/
Il faut utiliser WlanGetNetworkBssList au lieu de WlanGetAvailableNetworkList.
Paul Bacelar, Ex - MVP VC++- Proposé comme réponse Ciprian Duduiala lundi 20 juin 2011 11:31
- Marqué comme réponse Ciprian Duduiala jeudi 23 juin 2011 06:03
-
J'ai lu la conversation suivante et tenté d'accéder aux données voulues, RSSI MAC@ channel SSID
mais j'ai rencontré beaucoup de mal.
J'ai ce morceau de code
DWORD serviceVersion = 0;
HANDLE client = 0;
DWORD result = 0;
result = WlanOpenHandle(WLAN_API_VERSION, NULL, &serviceVersion, &client);
if(result != ERROR_SUCCESS) {
// exit
}
// Sanity check.
if(client == 0) {
// exit
}
PWLAN_INTERFACE_INFO_LIST wlanInterfaceInfoList = 0;
result = WlanEnumInterfaces(client, 0, &wlanInterfaceInfoList);
if(result != ERROR_SUCCESS) {
// Clean up.
if(client != 0) {
WlanCloseHandle(client, 0);
client = 0;
}
// This might not be needed.
if(wlanInterfaceInfoList != 0) {
WlanFreeMemory(wlanInterfaceInfoList);
wlanInterfaceInfoList = 0;
}
// exit
}
PVOID data = 0;
DWORD size = 0;
for(unsigned int i = 0; i < wlanInterfaceInfoList->dwNumberOfItems; ++i) {
result = WlanQueryInterface(
client,
&wlanInterfaceInfoList->InterfaceInfo[i].InterfaceGuid,
wlan_intf_opcode_current_connection,
0,
&size,
&data,
0
);
if(result != ERROR_SUCCESS) {
break;
}
PWLAN_CONNECTION_ATTRIBUTES wlanConnectionAttributes = 0;
wlanConnectionAttributes = (PWLAN_CONNECTION_ATTRIBUTES)data;
if(wlanConnectionAttributes->isState != wlan_interface_state_connected) {
continue;
}
char ssidName[33];
memset(ssidName, 0, 33);
memcpy(
ssidName,
wlanConnectionAttributes->wlanAssociationAttributes.dot11Ssid.ucSSID,
wlanConnectionAttributes->wlanAssociationAttributes.dot11Ssid.uSSIDLength);
if (wlanConnectionAttributes->wlanAssociationAttributes.dot11Ssid.uSSIDLength == 0)
wprintf(L"\n");
else {
for (int k = 0; k < wlanConnectionAttributes->wlanAssociationAttributes.dot11Ssid.uSSIDLength; k++) {
wprintf(L"%c", (int) wlanConnectionAttributes->wlanAssociationAttributes.dot11Ssid.ucSSID[k]);
}
wprintf(L"\n");
}
qui me permet d'afficher le SSID du réseau sur lequel je suis connecté, or je voudrais moi recuperer les données de tout les points d'accès autour de moi.
Quelqu'un aurtait-il une idée ? ou un morceau de code explicatif ?
Merci
-
Bonjour,
Je reviens vers vous car après quelques recherches, j'ai une question qui reste en suspend.
Je commence donc mon application par WlanOpenHandle(), puis j'initialise la carte réseau WlanEnumInterfaces() jusqu'ici tout ce déroule bien. Par contre je voulais maintenant récupérer les Adresses MAC, le SSID, le channel et le rssi des points d'accès.
Ma question étant, est ce qu'il faudrait établir un envoi de probe request sur chaque AP avec WlanGetAvailableNetworkList() puis dans chaque réseau qui peut etre construit avec un ou plusieurs point d'accès utiliser WlanGetNetworkBssList() pouvoir récuperer toutes les données voulues (mac, ssid,channel, rssi).
ce qui donnerait une encapsulation WlanGetAvailableNetworkList() -> WlanGetNetworkBssList()
Mais je ne trouve aucun moyen de "joindre" les deux pourtant c'est ce que j'ai compris sur les différents tutoriaux
cf:http://ram-0000.developpez.com/tutoriels/Programme/WifiScanner/
Est-ce ainsi que l'on doit procéder ?
Merci
-
Le champs pDot11Ssid de WlanGetNetworkBssList() n'est pas là pour ça ???
Paul Bacelar, Ex - MVP VC++