WIFI et langage C
Fermé
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
-
29 avril 2008 à 20:31
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 - 24 mai 2008 à 13:42
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 - 24 mai 2008 à 13:42
A voir également:
- WIFI et langage C
- Voir mot de passe wifi android - Guide
- Wifi pc - Guide
- Adresse mac wifi - Guide
- Code wifi - Guide
- Changer wifi chromecast - Guide
14 réponses
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
24 mai 2008 à 10:12
24 mai 2008 à 10:12
bon comme prévu je reviens avec quelquechose, ouais je sais c'est à utiliser sous windows mais bon, je pense qu'il faut regarder sous linux et sous windows:
les include :
#include <Windows.h>
#include <Winbase.h>
#include <string>
#include <iostream>
#include "Wlanapi.h"
le code permettant de scanner les reseau wifi :
bon il y a des szwitch dans tout les sens mais c'est pour le debuggage alors utilisez les en enlevant ce que j'ai mis en commentaire (bien entendu ça va pourrir l'affichage que j'ai fais mais bon), si pas de bug alors laissez en commentaire, je l'ai fait sous visual studio 2008 pro, c'est un projet application console win32.
si vous avez des question n'hesitez pas ou allez consulter la msdn ou bien dans google tapez "c++ et Wlanapi" c'est un de mes post que vous devriez voir apparaitre en premier et aussi "scanner points d'accès wifi - c/c++" qui est aussi un de mes posts, maintenant je vais regarder la wincap et m'acheter un clé usb Wifi gérant l'injection de paquets (enfin quand j'aurais de l'argent) et ensuite je ragarde sous linux (peut etre plus facile ? ...).
voila bon courage a vous, si vous avez des info balancez ici, on est preneur
bon week-end, tchû
les include :
#include <Windows.h>
#include <Winbase.h>
#include <string>
#include <iostream>
#include "Wlanapi.h"
le code permettant de scanner les reseau wifi :
DWORD out1; HANDLE out2; char c; cout << "voulez-vous lancer le scan ? pour \"oui\" tapez la lettre 'o' pour \"non\" tapez la lettre 'n': "; cin >> c; if (c != 'o') return null; DWORD d1 = WlanOpenHandle(1,null,&out1,&out2); //cout << "WlanOpenHandle "; switch(d1){ case ERROR_INVALID_PARAMETER :cout <<" error: parameter" << endl;break; case ERROR_NOT_ENOUGH_MEMORY :cout <<" error: memory allocation" << endl;break; case ERROR_REMOTE_SESSION_LIMIT_EXCEEDED:cout <<" error: too much handle" << endl;break; case ERROR_SUCCESS:/*cout << "WlanOpenHandle no problem" << endl<< endl;*/break; default: cout << "default" << endl;break; } PWLAN_INTERFACE_INFO_LIST ppInterfaceList; DWORD d2 = WlanEnumInterfaces(out2,NULL,&ppInterfaceList); //cout << "WlanEnumInterfaces "; switch(d2){ case ERROR_SUCCESS : /*cout << " no problem" << endl<< endl;*/break; case ERROR_INVALID_PARAMETER : cout <<"error : parameter" << endl;break; case ERROR_INVALID_HANDLE : cout <<"error : handle" << endl;break; case ERROR_NOT_ENOUGH_MEMORY : cout <<"error : memory" << endl; break; default: cout <<"default" << endl;break; } GUID g; if (ppInterfaceList->dwNumberOfItems > 0){ //cout << "Guid : " << ppInterfaceList->InterfaceInfo[ppInterfaceList->dwIndex].InterfaceGuid.Data1 << " " << ppInterfaceList->InterfaceInfo[ppInterfaceList->dwIndex].InterfaceGuid.Data2 << " " << ppInterfaceList->InterfaceInfo[ppInterfaceList->dwIndex].InterfaceGuid.Data3 << " " << ppInterfaceList->InterfaceInfo[ppInterfaceList->dwIndex].InterfaceGuid.Data4 << endl; cout << endl; cout <<" =========================================="<<endl; cout <<"| description | state |" << endl; cout <<" =========================================="<<endl; cout << "| " <<ppInterfaceList->InterfaceInfo[ppInterfaceList->dwIndex].strInterfaceDescription << " "; switch(ppInterfaceList->InterfaceInfo[ppInterfaceList->dwIndex].isState){ case 0: cout << "| not ready |";break; case 1: cout << "| connected |";break; case 2: cout << "| ad-hoc network formed |";break; case 3: cout << "| disconnecting |";break; case 4: cout << "| disconnected |";break; case 5: cout << "| associating |";break; case 6: cout << "| discovering |";break; case 7: cout << "| authenticating |";break; default: cout << "| default |";break; } g = ppInterfaceList->InterfaceInfo[ppInterfaceList->dwIndex].InterfaceGuid; } cout <<endl<<" =========================================="<<endl; cout <<endl<<endl; cout <<endl<< " ========================================================================================================"<<endl; cout << "| Name | Quality | Type of key | Encoding | Ssid " << endl;//ajouter @ Mac cout << " ========================================================================================================"<<endl; PWLAN_AVAILABLE_NETWORK_LIST p = NULL; DWORD d = WlanGetAvailableNetworkList(out2,(const GUID *)&g ,WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_ADHOC_PROFILES,NULL,&p); //cout << endl << "WlangetAvailableNetworkList "; switch(d){ case ERROR_SUCCESS : /*cout << " no problem " << endl<< endl;*/break; case ERROR_INVALID_PARAMETER : cout << " error: parameter " << endl;break; case ERROR_INVALID_HANDLE : cout << " error :handle " << endl;break; case ERROR_NDIS_DOT11_POWER_STATE_INVALID : cout << " error :wifi turned off() " << endl;break; case ERROR_NOT_ENOUGH_MEMORY : cout << " error :memory allocation" << endl;break; default:cout << "default" << endl;break; } int nb_res = p->dwNumberOfItems; for (int i = 0; i < nb_res ; i++){ cout <<"| "<< p->Network[i].strProfileName << " "; cout <<"| ";printf("%3d %s",p->Network[i].wlanSignalQuality," % "); //cout <<"| " << p->Network[0].uNumberOfBssids << " "; int crypt = p->Network[i].dot11DefaultAuthAlgorithm; switch(crypt){ case 1: cout <<"| 80211 open ";break; case 2: cout <<"| 80211 shared key ";break; case 3: cout <<"| wpa ";break; case 4: cout <<"| wpa psk ";break; case 5: cout <<"| not supported ";break; case 6: cout <<"| wpa2 ";break; case 7: cout <<"| wpa2 psk ";break; default: cout <<"| default ";break; } switch(p->Network[i].dot11DefaultCipherAlgorithm){ case 0x00: cout << "| none ";break; case 0x01: cout << "| wep 40 bit ";break; case 0x02: cout << "| tkip ";break; case 0x04: cout << "| aes-ccmp ";break; case 0x05: cout << "| wep 104 bit ";break; case 0x100: cout <<"| wpa group or rsn group ";break; case 0x101: cout <<"| wep ";break; default: cout << "| default ";break; } cout <<"| " << p->Network[i].dot11Ssid.ucSSID<< " "; cout <<endl<<" ========================================================================================================"<<endl; } cout << "appuyer sur une touche + Entrée" << endl; cin >>c; WlanFreeMemory(p); WlanCloseHandle(out2,NULL);
bon il y a des szwitch dans tout les sens mais c'est pour le debuggage alors utilisez les en enlevant ce que j'ai mis en commentaire (bien entendu ça va pourrir l'affichage que j'ai fais mais bon), si pas de bug alors laissez en commentaire, je l'ai fait sous visual studio 2008 pro, c'est un projet application console win32.
si vous avez des question n'hesitez pas ou allez consulter la msdn ou bien dans google tapez "c++ et Wlanapi" c'est un de mes post que vous devriez voir apparaitre en premier et aussi "scanner points d'accès wifi - c/c++" qui est aussi un de mes posts, maintenant je vais regarder la wincap et m'acheter un clé usb Wifi gérant l'injection de paquets (enfin quand j'aurais de l'argent) et ensuite je ragarde sous linux (peut etre plus facile ? ...).
voila bon courage a vous, si vous avez des info balancez ici, on est preneur
bon week-end, tchû
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 526
29 avril 2008 à 21:00
29 avril 2008 à 21:00
Salut,
Tu as sans doute la commande iwlist.
Si tu lances iwlist scanning sous linux tu as la liste des réseaux wifi à portée.
Cette commande utilise la iwlib, une librairie pour gérer les interfaces wifi.
C'est une librairie incluse dans wireless-tools.
Pour l'utiliser tape
Puis regarde ensuite ton fichier /usr/include/iwlib.h pour voir l'étendue des fonctions qui s'offrent à toi.
Tu trouveras des exemples d'utilisation dans le code source des petits programmes de wireless-tools.
PS: Ca se dit "incluse" ?
Tu as sans doute la commande iwlist.
Si tu lances iwlist scanning sous linux tu as la liste des réseaux wifi à portée.
Cette commande utilise la iwlib, une librairie pour gérer les interfaces wifi.
C'est une librairie incluse dans wireless-tools.
Pour l'utiliser tape
sudo apt-get install libiw-dev
Puis regarde ensuite ton fichier /usr/include/iwlib.h pour voir l'étendue des fonctions qui s'offrent à toi.
Tu trouveras des exemples d'utilisation dans le code source des petits programmes de wireless-tools.
PS: Ca se dit "incluse" ?
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
1 mai 2008 à 18:18
1 mai 2008 à 18:18
salut les gens c'est toujours moi,
bon j'ai testé le scan_wifi du site un peu plus haut, néanmoins il me manque des bibliotheques du genre net80211/* (#include <net80211/ieee80211.h>,#include <net80211/ieee80211_ioctl.h>, ...)que je n'arrive pas à trouver ou du moins qu'est-ce que je dois installer pour choper cette biblio ? je suis sous Ubuntu (la derniere version).
je vous remercie par avance
bon j'ai testé le scan_wifi du site un peu plus haut, néanmoins il me manque des bibliotheques du genre net80211/* (#include <net80211/ieee80211.h>,#include <net80211/ieee80211_ioctl.h>, ...)que je n'arrive pas à trouver ou du moins qu'est-ce que je dois installer pour choper cette biblio ? je suis sous Ubuntu (la derniere version).
je vous remercie par avance
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
29 avril 2008 à 21:03
29 avril 2008 à 21:03
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
30 avril 2008 à 08:10
30 avril 2008 à 08:10
salut kilian,
est-ce que tu pourrais encore m'aider ?
en fait j'aimerai faire quasi la meme chose que ce que tu m'as filé mais sans .h d'autre personne (bien sur tout les .h à inclure ont forcément été fait par des personnes ...) et donc programmé bas niveau, avec manipulation de socket et toute les structures qu'il faut pour le wifi. Si tu ne vois pas comment faire sans wireless-tools alors je te remercie de t'être creuser les meninges.
merci encore
PS : oui on peut dire incluse qui est le perticipe passé du verbe inclure mais au féminin.
est-ce que tu pourrais encore m'aider ?
en fait j'aimerai faire quasi la meme chose que ce que tu m'as filé mais sans .h d'autre personne (bien sur tout les .h à inclure ont forcément été fait par des personnes ...) et donc programmé bas niveau, avec manipulation de socket et toute les structures qu'il faut pour le wifi. Si tu ne vois pas comment faire sans wireless-tools alors je te remercie de t'être creuser les meninges.
merci encore
PS : oui on peut dire incluse qui est le perticipe passé du verbe inclure mais au féminin.
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 526
30 avril 2008 à 12:35
30 avril 2008 à 12:35
Eh non je ne sais pas comment ca se passe à plus bas niveau. Faudrait justement regarder comment se débrouille cette lib.
Mais ça m'interesse aussi, si tu trouves, n'hésite pas en parler ici :-)
PS: ouf merci pour "incluse"
Mais ça m'interesse aussi, si tu trouves, n'hésite pas en parler ici :-)
PS: ouf merci pour "incluse"
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
30 avril 2008 à 19:29
30 avril 2008 à 19:29
ok je te tiens au courant si je trouve plus d'info sur le codage bas niveau pour le wifi.
bon week.
bon week.
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
30 avril 2008 à 20:00
30 avril 2008 à 20:00
bon j'ai trouvé un site traitant en bas niveau le wifi, je n'ai pas regardé en profondeur mais il me semble qu'il est assez complet, peut-etre pas assez sur les commentaire mais bon, voila :
http://www.unixgarden.com
je continu mes recherches
http://www.unixgarden.com
je continu mes recherches
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 526
30 avril 2008 à 20:03
30 avril 2008 à 20:03
Merci!!
Tien j'en suis au meme niveau , bonjour d'abord . Moi je suis sur mac donc je sais pas trop si je vais faire avancer les choses mais c'est en rapport avec les adaptateurs reseaux IEEE 802.11n par exemple ... a part cet intervention sans concistance tu peu ajouter une personne qui cherche en plus . Mais avec le langage c peu importe l'os sur lequel tu te trouve faut trouver cette librairie . J'ai pecho un bouquin sur la programation systeme en c sous linux on sait jamais .
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
6 mai 2008 à 21:02
6 mai 2008 à 21:02
ok j'attends des nouvelles alors, la je regarde sous windows avec Wlanapi.h mais je galère sévère, enfin ce qui est sur c'est que dès que je parvient à quelquechose --> je le mets sur ce post
allé bonne soirée
allé bonne soirée
ba pour moi c'est resolu c'est apple80211_var.h mais ca resou pas ton probleme assaye de telecharger un autre complateur ou une biblioteque de librairie ca devrait se trouver . Parceque les pages de code des apli systeme c'est ludique mais si ta pas la librairie du protocole 802.11 ... ah moin de baisser encore d'un niveau et faire ton 80211.h tout seul ... si tu trouve un tutoriel la dessu previen moi .
Bonne soirée
Bonne soirée
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 526
6 mai 2008 à 23:53
6 mai 2008 à 23:53
Pardon, j'avais zappé la discussion, mais ça tombe bien je suis justement en train de bosser sur le WIFI mais au niveau noyau.
bon j'ai testé le scan_wifi du site un peu plus haut, néanmoins il me manque des bibliotheques du genre net80211/* (#include <net80211/ieee80211.h>,#include <net80211/ieee80211_ioctl.h>
Ce sont des fichiers d'en-tête qui sont utilisés par le noyau Linux. Mais j'imagine que comme tu utilises un outil (la iwlib) qui interroge directement un driver wifi, celui-ci te renverra des données conformes aux structures du noyau.
Par contre ce sont des fichiers d'en-têtes qui se retrouvent plutôt à partir du noyau 2.6.15 je crois.
Hem...motivé pour compiler un noyau?
bon j'ai testé le scan_wifi du site un peu plus haut, néanmoins il me manque des bibliotheques du genre net80211/* (#include <net80211/ieee80211.h>,#include <net80211/ieee80211_ioctl.h>
Ce sont des fichiers d'en-tête qui sont utilisés par le noyau Linux. Mais j'imagine que comme tu utilises un outil (la iwlib) qui interroge directement un driver wifi, celui-ci te renverra des données conformes aux structures du noyau.
Par contre ce sont des fichiers d'en-têtes qui se retrouvent plutôt à partir du noyau 2.6.15 je crois.
Hem...motivé pour compiler un noyau?
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
7 mai 2008 à 11:52
7 mai 2008 à 11:52
je ne touche plus au noyau car la semaine derniere j'en ai fait planté un, resultat : plus de carte ethernet et wifi d'installé.
sinon tu dis qu'on peut utilisé iwlib c'est ça ?
je regarde de ce coté la, sinon pour iee808/... c'est avec l'OS netBSD un truc de ce genre donc pas avec le linux que tout le monde connait
allé tchu
sinon tu dis qu'on peut utilisé iwlib c'est ça ?
je regarde de ce coté la, sinon pour iee808/... c'est avec l'OS netBSD un truc de ce genre donc pas avec le linux que tout le monde connait
allé tchu
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 526
7 mai 2008 à 12:37
7 mai 2008 à 12:37
T'as raison en plus c'est pour netbsd.
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
13 mai 2008 à 11:23
13 mai 2008 à 11:23
bon j'ai un peu avancé, (grace à un gars de chez microsoft), pour l'instant je code pour choper les ssid des alentours, dès que j'ai quelquechose de convenable, je vous le fais savoir
tchû
tchû
24 mai 2008 à 13:28
24 mai 2008 à 13:42
bon week man
tchû