Tôi là tác giả của wifi-wand
, tiện ích dòng lệnh Ruby có thể được sử dụng như một cách đơn giản để quản lý WiFi của Mac ( https://github.com/keithrbennett/wifiwand ) mà không phải tìm hiểu tất cả các lệnh Mac OS cơ bản khác nhau và các tùy chọn của chúng.
Để có được danh sách tên mạng, tôi đã từng sử dụng airport -s
nhưng thấy rằng nó không hoạt động vì các tên mạng được chứng minh là đúng (đệm trái), không có cách nào để biết các khoảng trắng hàng đầu là một phần của tên hay chỉ ở đó để định dạng. Vì vậy tôi sử dụng airport -s -x
để lấy thông tin được hiển thị trong (pseudo-) XML.
Điều này hầu như luôn hoạt động, nhưng tôi đã nhận thấy ở một số vị trí, nếu có mạng máy in HP, đầu ra sẽ chấm dứt ở đâu đó trong phần tử đó. Ví dụ:
<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
Không có -x
tùy chọn, đầu ra hoạt động, nhưng, như tôi nói, có vấn đề về không gian ngăn tôi dựa vào nó:
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)
Điều gì đang xảy ra và làm thế nào tôi có thể khắc phục điều này? Cảm ơn trước.
(Vấn đề Github là tại https://github.com/keithrbennett/wifiwand/issues/20 .)
Lỗi này liên quan đến HP được xác nhận tại https://clburlison.com/macos-wifi-scanning/ , mà nói:
Khi bạn chạy sân bay với cờ --xml, lệnh sẽ không thể xuất dữ liệu xml được định dạng chính xác ... một ý tưởng là máy in HP đang phát SSID với các ký tự không an toàn ...
[gần, nhưng đó là tên mô hình, không phải SSID, dường như tạo ra lỗi]
airport -s -x | cat -v
để xem có ký tự đặc biệt nào được gửi đến đầu ra không?
<string>HP LaserJet MFP M426fdw
và không có nhân vật, đặc biệt hay cách khác, sau w
. ( od -x
trên tập tin được tạo ra này là dòng cuối cùng: 0073600 4d20 5046 4d20 3234 6636 7764
).