wifiwand
wifiwand copied to clipboard
avail_nets fails sometimes when an HP printer network is present
(This issue reported at https://apple.stackexchange.com/questions/341517/airport-s-x-returns-truncated-output.)
The avail_nets command calls airport -s -x to get available network information in (pseudo-)XML format. In several locations, if there is an HP printer network, the output terminates somewhere in that element, and the command fails. For example:
<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
Without the -x option, the output works, but, as I say, there is the space issue that prevents me from relying on it:
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)
Apparently there are others who have discovered this bug: An excerpt from https://clburlison.com/macos-wifi-scanning/:
When you run airport with the --xml flag the command would fail to output properly formatted xml data. I did not spend a bunch of time trying to find the root issue since I wanted a working solution now and knew any potential bug fixes would take 3-18 months. One idea is that HP printers are broadcasting a SSID with unsafe characters, or maybe the airport command chokes when scanning in a highly saturated area.
You can see the result of a failed run below, without proper ending tags:
<dict>
<!-- removed for brevity-->
<key>SSID_STR</key>
<string>DIRECT-54-HP ENVY 4520 series</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-54-HP ENVY 4520 series</string>
<key>IE_KEY_WPS_DEV_NAME_DATA</key>
<data>
RElSRUNULTU0LUhQIEVOVlkgNDUyMCBzZXJpZXM=
</data>
<key>IE_KEY_WPS_MANUFACTURER</key>
<string>HP</string>
<key>IE_KEY_WPS_MODEL_NAME</key>
<string>ENVY 4520 series
fwiw, this airport bug is still the case on Catalina 10.15.2.