Soy el autor de wifi-wand
, una utilidad de línea de comandos de Ruby que puede utilizarse como una forma sencilla de gestionar el WiFi del Mac ( https://github.com/keithrbennett/wifiwand ) sin tener que aprender todos los diferentes comandos subyacentes de Mac OS y sus opciones.
Para obtener una lista de nombres de red, solía utilizar airport -s
pero descubrí que no funciona porque como los nombres de red están justificados a la derecha (rellenados a la izquierda), no hay manera de saber si los espacios iniciales son parte del nombre o sólo están ahí para formatear. Así que uso airport -s -x
para obtener la información mostrada en (pseudo)XML.
Esto casi siempre funciona, pero he notado que en varios lugares, si hay una red de impresoras HP, la salida termina en algún lugar de ese elemento. Por ejemplo:
<key>SSID_STR</key>
<string>DIRECT-0E-HP OfficeJet 4650</string>
<key>WPS_PROB_RESP_IE</key>
<dict>
<key>IE_KEY_WPS_AP_SETUP_LOCKED</key>
<true/>
<key>IE_KEY_WPS_CFG_METHODS</key>
<integer>0</integer>
<key>IE_KEY_WPS_DEV_NAME</key>
<string>DIRECT-0E-HP OfficeJet 4650</string>
<key>IE_KEY_WPS_DEV_NAME_DATA</key>
<data>
RElSRUNULTBFLUhQIE9mZmljZUpldCA0NjUw
</data>
<key>IE_KEY_WPS_MANUFACTURER</key>
<string>HP</string>
<key>IE_KEY_WPS_MODEL_NAME</key>
<string>OfficeJet 4650 series
Sin el -x
opción, la salida funciona, pero, como digo, está el tema del espacio que me impide confiar en ella:
SSID BSSID RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
NETGEAR25-5G a0:04:60:1a:5a:89 -67 153,-1 Y -- WPA2(PSK/AES/AES)
DIRECT-0E-HP OfficeJet 4650 ac:e2:d3:a9:d9:0f -90 6 Y -- WPA2(PSK/AES/AES)
iPhone b2:8d:6c:9f:dd:00 -49 1 Y US WPA2(PSK/AES/AES)
NETGEAR25 a0:04:60:1a:5a:87 -62 9 Y -- WPA2(PSK/AES/AES)
CBCI-4F58 60:3d:26:57:4f:5c -86 6 Y -- WPA2(PSK/AES/AES)
¿Qué ocurre y cómo puedo solucionarlo? Gracias de antemano.
(El tema de Github está en https://github.com/keithrbennett/wifiwand/issues/20 .)
Este error relacionado con HP se confirma en https://clburlison.com/MacOS-wifi-scanning/ que dice:
Cuando se ejecuta airport con la bandera --xml el comando fallaría en la salida de los datos xml correctamente formateados...una idea es que las impresoras HP están emitiendo un SSID con caracteres inseguros...
[que está cerca, pero es el nombre del modelo, no el SSID, lo que parece generar el error]
0 votos
@Buscar, es decir, el nombre de la empresa, es el mismo que el de la empresa. ¿Te refieres a SSID?
0 votos
Hasta ahora he visto 3 salidas de la condición de error, y todas tienen esto en común: 1) La salida siempre termina después de imprimir el valor de IE_KEY_WPS_MODEL_NAME, y 2) todas son impresoras HP. (He visto salidas para este campo en impresoras que no son HP que no causan este error.
2 votos
¿Has probado algo como
airport -s -x | cat -v
para ver si se envía algún carácter especial a la salida?0 votos
@Buscar No entiendo lo que intentas decir en tu primer comentario. El BSSID no tiene espacios, pero ¿qué tiene que ver eso con la pregunta?
0 votos
@TJLuoma He ejecutado el comando y redirigido la salida a un archivo. La última línea era
<string>HP LaserJet MFP M426fdw
y no había caracteres, especiales o no, después delw
. (od -x
en el archivo produjo esto como la última línea:0073600 4d20 5046 4d20 3234 6636 7764
).0 votos
Creo que lo que quiere decir @Buscar es que podrías intentar coincidir con el BSSID, y (presumiblemente) desde ahí hasta el final de la línea. Si coincides y eliminas eso, te quedaría el SSID como resto.
1 votos
Nota: la salida truncada de alguna manera relacionada con las impresoras HP sigue siendo un problema incluso hoy en día en MacOS Catalina 10.15.2.