Cherche lib + howto pour utiliser le pilote wifi (linux) [C++] - C++ - Programmation
Marsh Posté le 12-08-2009 à 18:55:23
Au pire, fait un popen en C et recupére le stdout de iwlist et traite les chaines de caractères retournées.
Marsh Posté le 12-08-2009 à 19:20:21
Ouep c'est ce que je pensais aussi, mais pour le coup l'association ça serait avec un iwconfig, ça passe mais c'est pas l'idéal
Doit bien y avoir des libs pour faire ça. Déjà iwlib le fait, mais j'avoue ne point comprendre son utilisation.
Marsh Posté le 13-08-2009 à 09:58:01
Ben je ne trouve pas de doc non. D'habitude y en a plein (contrairement à ce que tu dis sur l'openSource )
Mais là personnellement c'est assez flou.
ET les struct pommés dans un .h c'est pas vraiment parlant pour moi.
Il faut que QT nous sorte la lib magique
Marsh Posté le 13-08-2009 à 15:39:46
ça a l'air jouable quand même:
Code :
|
qui retourne une liste chainée vers les differents points d'accés trouvés dans (wireless_scan_head * context):
Code :
|
Marsh Posté le 13-08-2009 à 15:48:34
en fait la doc des fonctions est dans le source pas dans l'en-tête
Code :
|
Marsh Posté le 13-08-2009 à 16:20:20
Oui j'avais regardé tout ça, mais si je prends
int
iw_process_scan(int skfd, /* Socket to the kernel */
char * ifname, /* Device name */
int we_version,
wireless_scan_head * context);
tu comprends comment t'en servir toi? Tu sais comment lui fournir le socket vers le kernel? Tu comprends comment et sous quelle structure sera fourni le résultat?
Rien de tel que des exemples simples d'utilisation pour comprendre comment le faire, et ça je n'en ai trouvé aucun.
EDIT; je n'avais pas vu que tu parlais d'une liste chainée, ok c'est déjà une info et là je comprends mieux, mais avec un exemple ça serait bien plus facile à comprendre et à voir.
J'essaierais ce soir voir si j'arrive au moins à récupérer les infos.
Marsh Posté le 13-08-2009 à 16:29:58
en faisant une recherche dans le code source on retrouve souvent
Code :
|
Marsh Posté le 13-08-2009 à 16:40:45
on utilisant le fabuleux moteur de recherche qu'est google j'ai trouvé ça:
http://svn.pardus.org.tr/projeler/tasmanet/device.cpp
Code :
|
voilà tu l'as ton exemple
Marsh Posté le 13-08-2009 à 16:53:58
Ah ben ça alors! Merci beaucoup!
Je dois être une quiche en langage google car je n'ai pas du tout trouvé d'exemple!
T'as tapé quoi précisément?
Et tu aurais un exemple d'association à un point d'accés?
Marsh Posté le 13-08-2009 à 17:06:52
Ok... Moi j'avais tappé le nom de la bibliothèque et forcément ça n'avait rien donné.
Merci beaucoup de ton aide.
/note personnelle penser à chercher en tapant le nom d'une fonction de lib et pas le nom de la lib directement...
Marsh Posté le 13-08-2009 à 19:14:59
Bon forcément ça se passe mal.
Je rajoute les libs qu'il a inclu je fais juste le test avec quelques fonctions et j'ai droit à:
Citation : |
...
Je ne sais pas trop quoi penser.
(bien sûr j'inclue bien iwlib.h et toutes les lib qu'il a mis)
Marsh Posté le 13-08-2009 à 19:17:55
t'aurais pas oublié un -liw au link ? Et si ta lib n'est pas dans /usr/lib, il faut préciser le path avec -L
Marsh Posté le 13-08-2009 à 19:23:42
J'utilise le compilateur par défaut, et la lib est bien dans mon /usr/include. donc logiquement il doit la trouver sans que j'ai besoin de linker non?
en mettant mon #include tout simplement?
Marsh Posté le 13-08-2009 à 19:30:39
BOn j'ai rien dit c'était bien ça! Pff faut que je me dérouille là. Merci.
EDIT: j'allais dire que ça ne marchait pas avant de me rendre compte qu'il faut que je sois en root pour que ça passe, j'arrive déjà à lister.
Marsh Posté le 14-08-2009 à 17:43:00
Non.
Pour la simple est bonne raison qu'il n'est pas forcément installé partout et qu'en l'occurence sur la machine ou ça tournera, il n'y sera pas.
(freeruner...)
Marsh Posté le 16-08-2009 à 09:20:58
Par contre j'ai bien peur qu'avec cette lib on ne puisse pas faire du chiffrage wpa, je ne vois pas vraiment de connexion autre que juste s'associer à un point d'accès. (équivalent du iwconfig essid monpoint).
Marsh Posté le 16-08-2009 à 10:08:44
Je galère aussi pour arriver à récupérer le type de chiffrage. Je me demande s'il n'y a pas mieux comme solution.
Marsh Posté le 16-08-2009 à 12:00:13
Bon finalement je fais avec un popen + parcours ligne à ligne et recherche de string dans le résultat et c'est bon je récupère ce que je veux. ça ne sera pas parfait mais bon pour l'instant je ne vois guerre d'autres solutions.
Marsh Posté le 12-08-2009 à 15:47:48
Bonjour à tous et toutes, j'aurais besoin de votre aide, je cherche une lib qui me permettrais en C++ de lister les point d'accés existant (leur qualitée de signal mais au minimum le nom et si c'est protégé ou pas) et de pouvoir m'y authentifier.
J'ai bien vu la lib wireless.h ou iwlib (libiw) mais je ne trouve pas d'exemple clair facile à comprendre (c'est en général de gros pavé sans vrais commentaires en C avec des structures de partout. )
Avez vous un tuto miracle ou une lib "courante" facile d'utilisation? (parce que bon tout ces struct en C ce n'est pas l'idéal tout de même).
Le tout doit être disponible sous linux. L'idéal serait en fait un exemple clair ou tutorial pour la lib iwlib car je suis sûr qu'elle est dispo sur la plateforme ou le programme va tourner, mais si vous en avez une plus facile (ou en relation avec QT).
Merci d'avance
EDIt: Bien sûr je pourrais faire un iwlist vers un fichier puis parcourir le résultat mais ce n'est pas vraiment l'idéal. Il n'y a pas vraiment moyen de gérer les erreurs.
Message édité par burn2 le 12-08-2009 à 16:02:47
---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"