1. Introduction

Suite à l'article Découverte de l'API Microsoft Native Wifi, je me suis lancé dans la réalisation d'un programme de découverte des points d'accès Wifi en utilisant l'API Microsoft Native Wifi.

Les caractéristiques de ce programme sont les suivantes :

  • Il fonctionne sous environnement Microsoft Windows (XP SP2 au minimum à cause des contraintes imposées par l'API Microsoft Native Wifi elle-même).
  • C'est un programme gratuit (freeware) en mode graphique (utilisation des MFC).
  • Il affiche les principales informations techniques concernant les réseaux Wifi à proximité.

Ce document présente :

  • La procédure d'installation du programme WifiScanner.
  • Le fonctionnement du programme.

Pour les plus pressés d'entre vous, le programme d'installation se trouve ici : WifiScanner_Setup.

2. Installation de WifiScanner

Ce paragraphe présente :

  • La licence d'utilisation du programme WifiScanner.
  • L'historique des versions du programme.
  • Les plates-formes supportées.
  • La procédure d'installation en détail.
  • Les limitations connues et fonctionnalités non testées.

2.1. Licence du logiciel WifiScanner

Sauf mention contraire, la documentation et les binaires inclus dans le logiciel d'installation de WifiScanner sont protégés par Phoenix Team.

Copyright © 2007-2010 Phoenix Team. Tous droits réservés.

Ce logiciel est fourni "en l'état", sans aucune garantie ni implicite ni explicite. En aucune manière, les auteurs ne pourraient être tenus pour responsables des dommages causés par l'usage de ce logiciel.

Tout le monde a la permission d'utiliser ce logiciel pour quelque usage que ce soit, même commercial, de le modifier et de le redistribuer pourvu que les conditions suivantes soient remplies :

  • toute redistribution des codes sources doit conserver, sans modification, la mention de copyright présente ;
  • toute redistribution sous forme binaire doit conserver, sans modification, la mention de copyright actuelle ainsi que les adresses de sites web déjà en place (dans la boîte de dialogue "À propos de...", par exemple) ;
  • l'origine de ce logiciel ne doit pas être cachée ; vous ne pouvez pas dire que vous avez écrit ce logiciel. Si vous utilisez ce logiciel pour distribuer un produit, un remerciement dans la documentation du produit serait apprécié mais n'est pas obligatoire ;
  • toute version modifiée des sources ou des binaires doit être clairement identifiée et ne doit pas être présentée comme étant le logiciel original.

Phoenix Team

2.2. Historique des versions

2.2.1. Version 1.0 (25 décembre 2009)

Nouvelles fonctionnalités

  • C'est la première version donc tout est nouveau.

Problèmes corrigés

  • Il n'y a pas encore de problèmes identifiés.

2.3. plates-formes supportées

2.3.1. Version minimum d'OS

Le programme WifiScanner utilise l'API Microsoft Native Wifi. Cette API supporte les versions d'OS suivantes :

  • Windows XP avec SP2. Avec cette version de XP, il faut aussi installer le package "Wireless LAN API (KB918997)"
  • Windows XP avec SP3
  • Windows Vista
  • Windows Seven
  • Windows Server 2008

Avec Windows XP SP2 ou SP3, l'implémentation de l'API est faite par le service "Wireless Zero Configuration (WZC)" qui doit être démarré. Pour les autres versions de Windows, l'API est implémentée par le noyau lui-même et ne nécessite donc pas de service additionnel.

2.3.2. plates-formes supportées

Le programme WifiScanner a été testé avec succès sur les plates-formes suivantes :

  • Windows XP Home Edition SP3 32 bits (sur une architecture 64 bits)
  • Windows Seven Professional 64 bits (sur une architecture 64 bits)

Si d'autres architectures sont supportées, n'hésitez pas à l'indiquer dans le post dédié à ce document ici : 3 commentaires. Ce document sera alors complété.

2.3.3. plates-formes non supportées

Le programme WifiScanner n'a pas fonctionné sur les plates-formes suivantes :

  • Windows 98 SE

Si d'autres architectures ne sont pas supportées, n'hésitez pas à l'indiquer dans le post dédié à ce document ici : 3 commentaires. Ce document sera alors complété.

2.4. Procédure d'installation

Le programme d'installation (setup) peut être téléchargé ici.

Ce setup se charge d'installer le programme et éventuellement le "Package redistribuable Microsoft Visual C++ 2005 (x86)".

Le setup est réalisé avec le compilateur de setup Innosetup.

Le déroulement de l'installation passe par les étapes suivantes :

Choix de la langue
Choix de la langue (français ou anglais)
Installation du Package redistribuable Microsoft Visual C++ 2005 (x86)
Installation du Package redistribuable Microsoft Visual C++ 2005 (x86) (si nécessaire)
Ecran de bienvenue
Ecran de bienvenue
Affichage de la licence
Affichage de la licence
Choix du répertoire d'installation
Choix du répertoire d'installation
Ajout dans le menu Démarrer
Ajout dans le menu Démarrer (option facultative)
Création d'une icône sur le bureau
Création d'une icône sur le bureau (option facultative)
Récapitulatif des actions qui vont être faites
Récapitulatif des actions qui vont être faites
Affichage de l'historique des versions du logiciel
Affichage de l'historique des versions du logiciel
Fin de l'installation du logiciel
Fin de l'installation du logiciel



La procédure d'installation va créer dans le menu Démarrer les entrées suivantes :

  • Phoenix Team / WifiScanner / WifiScanner : un lien pour lancer l'exécutable.
  • Phoenix Team / WifiScanner / Uninstall : un lien pour désinstaller le programme.
  • Phoenix Team / WifiScanner / Documentation : un lien vers cette page WWW.
  • Phoenix Team / WifiScanner / Phoenix Team WWW site : un lien vers le site de l'auteur.

La procédure d'installation va aussi créer une entrée dans le gestionnaire des logiciels installés afin de permettre sa désinstallation de manière propre.

Le gestionnaire des logiciels installés
Le gestionnaire des logiciels installés

2.5. Fonctionnalités non testées

Les fonctionnalités non testées du programme WifiScanner sont les suivantes :

  • Comportement du programme si aucune interface Wifi n'est disponible.
  • Comportement du programme avec une interface WIFI de type USB.
  • Comportement du programme avec plusieurs interfaces Wifi.
  • Du fait de la non disponibilité d'une carte Wifi USB lors de l'écriture de ce programme, la gestion durant l'exécution du programme de la suppression ou de l'ajout d'une interface Wifi n'a pas pu être testée.

Si vous avez une des configuration non testée, n'hésitez pas à donner votre retour sur le fonctionnement de WifiScanner sur le post dédié à cet effet : 3 commentaires, ce document évoluera aussi en fonction de vos remarques.

3. Fonctionnement du programme

Ce paragraphe détaille les points suivants :

  • Le fonctionnement de l'API Microsoft Native Wifi.
  • L'écran d'affichage des différentes cartes Wifi disponibles sur la machine.
  • L'affichage des différents réseaux Wifi visibles.
  • L'affichage des différents points d'accès Wifi visibles.

3.1. Fonctionnement de l'API Microsoft Native Wifi

Le programme utilise les fonctions de l'API Microsoft Native Wifi suivantes :

Une machine peut héberger plusieurs cartes Wifi, ces différentes cartes sont détectées par l'API Microsoft Native Wifi. Ce type de configuration (plusieurs cartes Wifi sur un même PC) peut sembler "bizarre" car si un réseau Wifi est accessible par une des cartes, il devrait l'être aussi par l'autre carte. Ce type de configuration n'a pas été testé lors du développement du programme et peut faire apparaitre des dysfonctionnements dans le programme.

Un réseau Wifi est identifié par son SSID (Service Set IDentifier). Ce SSID est nécessaire pour se connecter au réseau Wifi. Il est en général diffusé de manière publique par le point d'accès, il est toutefois possible d'empêcher cette diffusion et il faut alors connaitre le SSID configuré par l'administrateur pour se connecter à ce réseau Wifi.

Un réseau Wifi peut être constitué de 1 ou plusieurs points d'accès physiques. En général, les box à la maison disposent d'un seul point d'accès. Seuls les gros réseaux de points d'accès dans les aéroports par exemple disposent de plusieurs points d'accès pour le même réseau Wifi.

Chacun des différents points d'accès au même réseau Wifi diffuse le même SSID (puisque c'est le même réseau), ils sont identifiés dans ce réseau par leur BSSID.

La notion de BSSID (en fait, cela correspond à l'adresse MAC du point d'accès Wifi) existe aussi dans les réseaux Wifi avec un seul point d'accès.

3.2. Découverte des interfaces Wifi

Lors du lancement de WifiScanner, le programme affiche la liste de toutes les interfaces Wifi disponibles et sélectionne automatiquement la première.

Liste des interfaces Wifi
Liste des interfaces Wifi

Les propriétés de l'interface sélectionnée sont alors affichées. Ces propriétés correspondent à l'interprétation du contenu de la structure WLAN_INTERFACE_INFO retournée par la fonction WlanEnumInterfaces().

Les propriétés affichées sont :

  • # : correspond au numéro d'ordre de l'interface Wifi.
  • Nom : correspond au champ strInterfaceDescription de la structure WLAN_INTERFACE_INFO. Il s'agit d'une chaîne de 256 caractères Unicode qui contient le nom ou la description de l'interface Wifi.
  • Etat : correspond au champ isState de la structure WLAN_INTERFACE_INFO. Les valeurs possibles sont :

    0 : wlan_interface_state_not_ready.
    1 : wlan_interface_state_connected.
    2 : wlan_interface_state_ad_hoc_network_formed.
    3 : wlan_interface_state_disconnecting.
    4 : wlan_interface_state_disconnected.
    5 : wlan_interface_state_associating.
    6 : wlan_interface_state_discovering.
    7 : wlan_interface_state_authenticating.

  • Guid : correspond au champ InterfaceGuid de la structure WLAN_INTERFACE_INFO. Il s'agit d'un nombre unique permettant d'identifier sans équivoque la carte Wifi.

3.3. Découverte des réseaux Wifi

Une fois que l'interface désirée est sélectionnée, il suffit de cliquer sur le bouton "Suivant" pour afficher la liste des réseaux Wifi disponibles par cette interface. Les réseaux Wifi sont identifiés par leur SSID. Le premier réseau disponible est automatiquement sélectionné.

Liste des réseaux Wifi
Liste des réseaux Wifi

L'image affichée en haut à droite de la fenêtre représente l'historique des valeurs de la qualité du signal pour le réseau sélectionné. Cet historique contient les 60 dernières valeurs et il est rafraichi toutes les 2 secondes. Les 3 lignes jaunes horizontales représentent les valeurs 25%, 50% et 75%.

Les propriétés du réseau sélectionné sont affichées dans la liste en bas de la fenêtre. Ces propriétés correspondent à l'interprétation du contenu de la structure WLAN_AVAILABLE_NETWORK retournée par la fonction WlanGetAvailableNetworkList().

Les propriétés affichées sont :

  • # : correspond au numéro d'ordre du réseau Wifi.
  • Network : correspond au champ strProfileName de la structure WLAN_AVAILABLE_NETWORK. Il s'agit d'une chaîne de 256 caractères Unicode qui contient le nom du profil local associé à la connexion réseau. Ce nom de profil est toujours vide dans le programme WifiScanner.
  • SSID : correspond au champ dot11Ssid de la structure WLAN_AVAILABLE_NETWORK. Il s'agit d'une chaîne de 32 caractères ASCII qui contient le nom SSID de réseau Wifi diffusé par le point d'accès.
  • Type : correspond au champ dot11BssType de la structure WLAN_AVAILABLE_NETWORK. Les valeurs possibles sont :

    1 : dot11_BSS_type_infrastructure : cela correspond à un réseau Wifi d'infrastructure.
    2 : dot11_BSS_type_independent : cela correspond à un réseau Wifi ad hoc.
    3 : dot11_BSS_type_any : cela correspond à un réseau Wifi de n'importe quel type.

  • Nb of SSID : correspond au champ uNumberOfBssids de la structure WLAN_AVAILABLE_NETWORK. C'est le nombre de points d'accès qui constituent le réseau Wifi. Sur les machines XP (SP2 ou SP3), ce nombre vaut 1 quelque soit le nombre réel de points d'accès qui constituent le réseau Wifi.
  • Connectable : correspond au champ bNetworkConnectable de la structure WLAN_AVAILABLE_NETWORK. Ce flag indique s'il est possible ou non de se connecter à ce réseau Wifi.
  • Raison : correspond au champ wlanNotConnectableReason de la structure WLAN_AVAILABLE_NETWORK. S'il n'est pas possible de se connecter à ce réseau Wifi, ce code d'erreur indique la raison pour laquelle il n'est pas possible de se connecter.
  • Nb of Phy Type : correspond au champ uNumberOfPhyTypes de la structure WLAN_AVAILABLE_NETWORK. C'est le nombre de types physiques du réseau Wifi. Ce nombre est limité à 8.
  • Physical Type : correspond au champ dot11PhyTypes de la structure WLAN_AVAILABLE_NETWORK. C'est un tableau (limité à 8 entrées) des différents types physiques du réseau Wifi. Les valeurs possibles sont :

    0 : dot11_phy_type_unknown ou dot11_phy_type_any : cela correspond à un réseau physique de n'importe quel type ou de type inconnu.
    1 : dot11_phy_type_fhss : cela correspond à un réseau de type "frequency-hopping spread-spectrum" (FHSS). En général, cela concerne les périphériques de type Bluetooth.
    2 : dot11_phy_type_dsss : cela correspond à un réseau de type "direct sequence spread spectrum" (DSSS).
    3 : dot11_phy_type_irbaseband : cela correspond à un réseau de type infrarouge.
    4 : dot11_phy_type_ofdm : cela correspond à un réseau de type "orthogonal frequency division multiplexing" (OFDM). En général, cela concerne les périphériques respectant la norme 802.11a.
    5 : dot11_phy_type_hrdsss : cela correspond à un réseau de type "high-rate direct sequence spread spectrum" (HRDSSS).
    6 : dot11_phy_type_erp : cela correspond à un réseau de type "extended rate PHY" (ERP). En général, cela concerne les périphériques respectant la norme 802.11g.
    7 : dot11_phy_type_ht : cela correspond à un réseau inconnu.
    0x80000000 : dot11_phy_type_IHV_start : première valeur possible pour les types physiques propriétaires utilisés par les vendeurs indépendants de matériel (IHV = independent hardware vendor).
    0xffffffff : dot11_phy_type_IHV_end : dernière valeur possible pour les types physiques propriétaires utilisés par les vendeurs indépendants de matériel (IHV = independent hardware vendor).

  • More Phy Type : correspond au champ bMorePhyTypes de la structure WLAN_AVAILABLE_NETWORK. Si ce flag vaut TRUE, cela signifie que le nombre de types physiques supportés par le réseau Wifi est plus grand que 8. Un appel à la fonction WlanGetNetworkBssList() doit être effectué pour obtenir la liste complète des types supportés. L'appel à cette fonction n'est pas effectué par le programme WifiScanner.
  • Quality : correspond au champ wlanSignalQuality de la structure WLAN_AVAILABLE_NETWORK. Cette valeur correspond à la qualité de réception comprise entre 0 et 100% du signal. Une valeur de 100% indique une force de signal plus grande que -50 dbm.
  • Security enabled : correspond au champ bSecurityEnabled de la structure WLAN_AVAILABLE_NETWORK. Ce flag indique si la sécurité est activée ou non sur le réseau Wifi.
  • Auth alg : correspond au champ dot11DefaultAuthAlgorithm de la structure WLAN_AVAILABLE_NETWORK. Les valeurs possibles sont :

    1 : DOT11_AUTH_ALGO_80211_OPEN : cela correspond à un algorithme d'authentification 802.11 de type ouvert.
    2 : DOT11_AUTH_ALGO_80211_SHARED_KEY : cela correspond à un algorithme d'authentification 802.11 de type Shared Key (clé partagée). L'algorithme Wired Equivalent Privacy (WEP) est un algorithme de ce type.
    3 : DOT11_AUTH_ALGO_WPA : cela correspond à un algorithme d'authentification 802.11 de type Wifi Protected Access (WPA).
    4 : DOT11_AUTH_ALGO_WPA_PSK : cela correspond à un algorithme d'authentification 802.11 de type WPA avec utilisation d'une clé partagée (Shared Key).
    5 : DOT11_AUTH_ALGO_WPA_NONE : cette valeur n'est pas supportée.
    6 : DOT11_AUTH_ALGO_RSNA : cela correspond à un algorithme d'authentification 802.11i de type Robust Security Network Association (RSNA). L'algorithme WPA2 est un algorithme de type RSNA.
    7 : DOT11_AUTH_ALGO_RSNA_PSK : cela correspond à un algorithme d'authentification 802.11i de type RSNA avec utilisation d'une clé partagée (Shared Key).
    0x80000000 : DOT11_AUTH_ALGO_IHV_START : première valeur possible pour les algorithmes d'authentification propriétaires utilisés par les vendeurs indépendants de matériel (IHV = independent hardware vendor).
    0xffffffff : DOT11_AUTH_ALGO_IHV_END : dernière valeur possible pour les algorithmes d'authentification propriétaires utilisés par les vendeurs indépendants de matériel (IHV = independent hardware vendor).

  • Cipher alg : correspond au champ dot11DefaultCipherAlgorithm de la structure WLAN_AVAILABLE_NETWORK. Les valeurs possibles sont :

    0 : DOT11_CIPHER_ALGO_NONE : indique l'utilisation d'aucun algorithme de chiffrement.
    1 : DOT11_CIPHER_ALGO_WEP40 : indique l'utilisation d'un algorithme de chiffrement de type Wired Equivalent Privacy (WEP). Cet algorithme est basé sur l'algorithme RC-4 par le standard 802.11-1999 et utilise une clé de chiffrement de 40 bits.
    2 : DOT11_CIPHER_ALGO_TKIP : indique l'utilisation d'un algorithme de chiffrement de type Temporal Key Integrity Protocol (TKIP). Cet algorithme est basé sur l'algorithme RC-4 par le standard 802.11-1999 802.11i-2004 standard. Cet algorithme utilise aussi l'algorithme Michael Message Integrity Code (MIC) pour la protection contre le rejeu.
    4 : DOT11_CIPHER_ALGO_CCMP : indique l'utilisation d'un algorithme de chiffrement de type AES-CCMP défini par le standard 802.11-2004 et la RFC 3610.
    5 : DOT11_CIPHER_ALGO_WEP104 : indique l'utilisation d'un algorithme de chiffrement de type WEP avec une clé de chiffrement de 104 bits.
    256 : DOT11_CIPHER_ALGO_WPA_USE_GROUP ou DOT11_CIPHER_ALGO_RSN_USE_GROUP : indique l'utilisation d'un algorithme de chiffrement de type "Use Group Key". Pour plus d'information au sujet de ces algorithmes de chiffrement, se reporter au standard 802.11i-2004 paragraphe 7.3.2.25.1.
    257 : DOT11_CIPHER_ALGO_WEP : indique l'utilisation d'un algorithme de chiffrement de type WEP avec une clé de chiffrement dont la longueur est arbitraire.
    0x80000000 : DOT11_CIPHER_ALGO_IHV_START : première valeur possible pour les algorithmes de chiffrement propriétaires utilisés par les vendeurs indépendants de matériel (IHV = independent hardware vendor).
    0xffffffff : DOT11_CIPHER_ALGO_IHV_END : dernière valeur possible pour les algorithmes de chiffrement propriétaires utilisés par les vendeurs indépendants de matériel (IHV = independent hardware vendor).

  • Flags : correspond au champ dwFlags de la structure WLAN_AVAILABLE_NETWORK. Ce champ vaut toujours 0 dans le programme WifiScanner. Les valeurs possibles (combinées par ou binaire) sont les suivantes :

    1 : WLAN_AVAILABLE_NETWORK_CONNECTED : indique que l'on est connecté à ce réseau Wifi.
    2 : WLAN_AVAILABLE_NETWORK_HAS_PROFILE : indique qu'il existe un profil pour ce réseau Wifi.
    4 : WLAN_AVAILABLE_NETWORK_CONSOLE_USER_PROFILE : explication non comprise (The profile is the active console user's per user profile).

  • Reserved : correspond au champ dwReserved de la structure WLAN_AVAILABLE_NETWORK. Ce champ est réservé pour un usage ultérieur et vaut toujours 0.

Certaines explications ou informations sur la signification des champs de la structure WLAN_AVAILABLE_NETWORK ne sont pas forcément complètes. Ces explications sont issues pour la plupart du MSDN et des commentaires du fichier wlanapi.h. N'hésitez pas à apporter une explication complémentaire si vous avez plus d'information à ce sujet dans le post dédié à ce document ici : 3 commentaires. Ce document sera alors complété.

3.4. Découverte des points d'accès Wifi

Une fois que le réseau désiré est sélectionné, il suffit de cliquer sur le bouton "Suivant" pour afficher la liste des points d'accès Wifi disponibles sur ce réseau. Les points d'accès Wifi sont identifiés par leurs adresses MAC. Le premier point d'accès disponible est automatiquement sélectionné.

Liste des points d'accès Wifi
Liste des points d'accès Wifi

L'image affichée en haut à droite de la fenêtre représente l'historique des valeurs de la qualité du signal pour le point d'accès sélectionné. Cet historique contient les 60 dernières valeurs et il est rafraichi toutes les 2 secondes. Les 3 lignes jaunes horizontales représentent les valeurs 25%, 50% et 75%.

Les propriétés du point d'accès sélectionné sont affichées dans la liste en bas de la fenêtre. Ces propriétés correspondent à l'interprétation du contenu de la structure WLAN_BSS_ENTRY retournée par la fonction WlanGetNetworkBssList().

Les propriétés affichées sont :

  • # : correspond au numéro d'ordre du point d'accès Wifi.
  • SSID : correspond au champ dot11Ssid de la structure WLAN_BSS_ENTRY. Il s'agit d'une chaîne de 32 caractères ASCII qui contient le nom SSID de réseau Wifi diffusé par le point d'accès.
  • Phy ID : correspond au champ uPhyId de la structure WLAN_BSS_ENTRY. Il s'agit de l'identifiant physique sur lequel le point d'accès est actif.
  • BSSID : correspond au champ dot11Bssid de la structure WLAN_BSS_ENTRY. Il s'agit de l'adresse MAC du point d'accès Wifi.
  • BSS Type : correspond au champ dot11BssType de la structure WLAN_BSS_ENTRY. Les valeurs possibles sont :

    1 : dot11_BSS_type_infrastructure : cela correspond à un réseau Wifi d'infrastructure.
    2 : dot11_BSS_type_independent : cela correspond à un réseau Wifi ad hoc.
    3 : dot11_BSS_type_any : cela correspond à un réseau Wifi de n'importe quel type.

  • Phy Type : correspond au champ dot11BssPhyType de la structure WLAN_BSS_ENTRY. Les valeurs possibles sont :

    0 : dot11_phy_type_unknown ou dot11_phy_type_any : cela correspond à un réseau physique de n'importe quel type ou de type inconnu.
    1 : dot11_phy_type_fhss : cela correspond à un réseau de type "frequency-hopping spread-spectrum" (FHSS). En général, cela concerne les périphériques de type Bluetooth.
    2 : dot11_phy_type_dsss : cela correspond à un réseau de type "direct sequence spread spectrum" (DSSS).
    3 : dot11_phy_type_irbaseband : cela correspond à un réseau de type infrarouge.
    4 : dot11_phy_type_ofdm : cela correspond à un réseau de type "orthogonal frequency division multiplexing" (OFDM). En général, cela concerne les périphériques respectant la norme 802.11a.
    5 : dot11_phy_type_hrdsss : cela correspond à un réseau de type "high-rate direct sequence spread spectrum" (HRDSSS).
    6 : dot11_phy_type_erp : cela correspond à un réseau de type "extended rate PHY" (ERP). En général, cela concerne les périphériques respectant la norme 802.11g.
    7 : dot11_phy_type_ht : cela correspond à un réseau inconnu.
    0x80000000 : dot11_phy_type_IHV_start : première valeur possible pour les types physiques propriétaires utilisés par les vendeurs indépendants de matériel (IHV = independent hardware vendor).
    0xffffffff : dot11_phy_type_IHV_end : dernière valeur possible pour les types physiques propriétaires utilisés par les vendeurs indépendants de matériel (IHV = independent hardware vendor).

  • RSSI : correspond au champ lRssi de la structure WLAN_BSS_ENTRY. Il s'agit de la force du signal reçu exprimée en dbm.
  • Quality : correspond au champ uLinkQuality de la structure WLAN_BSS_ENTRY. Il s'agit de la qualité de réception comprise entre 0 et 100%.
  • Reg Domain : correspond au champ bInRegDomain de la structure WLAN_BSS_ENTRY. Si la norme 802.11d n'est pas implémentée, la carte Wifi doit positionner ce champ à TRUE. Si la norme 802.11d est implémentée (mais pas nécessairement activée), la carte Wifi doit positionner ce champ à TRUE si le point d'accès Wifi est conforme au domaine configuré.
  • Beacon Period : correspond au champ usBeaconPeriod de la structure WLAN_BSS_ENTRY. Il s'agit de l'intervalle de temps entre 2 paquets de découverte du réseau (beacon).
  • Timestamp : correspond au champ ullTimestamp de la structure WLAN_BSS_ENTRY. L'information d'horodatage lors de la réception du paquet de découverte (beacon).
  • Host Timestamp : correspond au champ ullHostTimestamp de la structure WLAN_BSS_ENTRY. L'information d'horodatage de la machine lors de la réception du paquet de découverte (beacon).
  • Cap Info : correspond au champ usCapabilityInformation de la structure WLAN_BSS_ENTRY. Les capacités reçues du paquet de découverte (beacon).
  • Frequency : correspond au champ ulChCenterFrequency de la structure WLAN_BSS_ENTRY. La fréquence d'émission radio du point d'accès Wifi (en GHz).
  • Channel : correspond au champ ulChCenterFrequency de la structure WLAN_BSS_ENTRY. Le canal d'émission du point d'accès Wifi (déduit de la fréquence).
  • Nb of rates : correspond au champ wlanRateSet de la structure WLAN_BSS_ENTRY. Le nombre de vitesses de transmission (limite à 126) supportées par le point d'accès Wifi.
  • Supported rates : correspond au champ wlanRateSet de la structure WLAN_BSS_ENTRY. La liste des vitesses de transmission supportées par le point d'accès Wifi.
  • IE Offset : correspond au champ ulIeOffset de la structure WLAN_BSS_ENTRY. L'offset des données binaires de l'élément d'information (Information Element = IE).
  • IE Size : correspond au champ ulIeSize de la structure WLAN_BSS_ENTRY. La longueur des données binaires de l'élément d'information (Information Element = IE).

Certaines explications ou informations sur la signification des champs de la structure WLAN_BSS_ENTRY ne sont pas forcément complètes. Ces explications sont issues pour la plupart du MSDN et des commentaires du fichier wlanapi.h. N'hésitez pas à apporter une explication complémentaire si vous avez plus d'information à ce sujet dans le post dédié à ce document ici : 3 commentaires. Ce document sera alors complété.

3.5. Plus d'information

En cliquant sur le bouton Aide, les informations de version du logiciel WifiScanner sont affichées.

Informations au sujet de WifiScanner
Informations au sujet de WifiScanner

4. Conclusions

Le programme WifiScanner a été réalisé en quelques jours. Il exploite les informations remontées par l'API Microsoft Native Wifi de gestion des réseaux Wifi. Il est écrit en C++, sous environnement Visual Studio 2005 Professional et utilise les MFC. Il utilise aussi la bibliothèque Winlog.

N'hésitez pas à aller sur la page WWW de WifiScanner pour voir si de nouvelles versions sont disponibles et n'hésitez pas non plus à laisser un avis ou une remarque au sujet de ce programme sur le post dédié à cet effet : 3 commentaires. Ce document évoluera aussi en fonction de vos remarques.

Je tiens à remercier Melem pour ses conseils avisés lors de la relecture de ce tutoriel.