3 votes

Comment obtenir de manière programmatique les réseaux wifi disponibles sans l'utilitaire de l'aéroport ?

Existe-t-il un moyen autre que l'utilisation du airport un utilitaire en ligne de commande pour obtenir la liste des réseaux wifi disponibles de manière programmatique (pour la consommation par une application) ? Voici le contexte :

J'ai une application en ligne de commande pour gérer les réseaux wifi ( https://github.com/keithrbennett/wifiwand , gem install wifi-wand ) dans lequel j'obtiens la liste des réseaux wifi disponibles à l'aide de airport -s .

Malheureusement, comme les noms de réseaux sont présentés alignés à droite, il n'y a aucun moyen de déterminer si oui ou non, ou combien, d'espaces de tête le nom contient. Il existe une option -x pour afficher les données au format XML, mais en Ruby, l'analyse du XML nécessite généralement l'installation de l'extension nokogiri qui est légendairement problématique, et je ne veux pas imposer cela à mes utilisateurs. Je passe donc par ce processus bizarre et moins que 100% fiable pour retourner les résultats corrects dans la plupart des cas, mais pas tous.

Quelles sont mes autres options, le cas échéant, pour obtenir cette information ?

4voto

nohillside Points 82672

Vous pourriez (mal) utiliser awk pour filtrer le résultat :

airport -s -x| awk '          { if (catch == 1) { print; catch=0 } }
                   /SSID_STR/ { catch=1 }'
<string>UPC Wi-Free</string>
<string>UPCE191589</string>
<string>The Cloud</string>
<string>UPCE191589</string>
<string>The Cloud</string>

Ce n'est pas très joli, mais ça fait l'affaire :-)

En revanche, un SSID peut être n'importe quoi, il n'a même pas besoin d'être imprimable (cf. Existe-t-il une norme qui définit ce qu'est un SSID et un mot de passe valides ? ). Ainsi, toute tentative de gérer le SSID dans des utilitaires en mode texte échouera tôt ou tard.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X