Sử dụng iw
Tôi chưa nm-tool
cài đặt nên tôi sử dụng iw
.
Lệnh này sắp xếp các điểm truy cập theo cường độ tín hiệu, mạnh nhất trước tiên:
sudo iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort
Mỗi lệnh giải thích:
iw dev wlan0 scan
: Quét các điểm truy cập có thể truy cập qua giao diện wlan0
egrep "signal:|SSID:"
: Nhận các đường có cường độ tín hiệu và SSID từ iw
đầu ra của. Đầu ra trông như thế này ngay bây giờ:
tín hiệu: -77,00 dBm
SSID: tênOfAccessPoint1
tín hiệu: -71,00 dBm
SSID: tênOfAccessPoint2
sed -e "s/\tsignal: //" -e "s/\tSSID: //"
: Giảm egrep
sản lượng của nó xuống đây:
-77,00 dBm
tênOfAccessPoint1
-71,00 dBm
tênOfAccessPoint2
awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}'
: Mang cường độ tín hiệu và SSID trên cùng một đường. Cụ thể hơn, khi số dòng ( NR
) là chẵn, nghĩa là chúng ta đang ở trên một dòng hiển thị một điểm truy cập, dấu tách bản ghi đầu ra ( ORS
) sẽ là một ngắt dòng. Mặt khác, chúng ta đang ở trên đường chứa cường độ tín hiệu, vì vậy chúng ta tham gia đường dây bằng cách tạo ORS
một không gian đơn giản.
Nếu chúng ta sort
xuất ra kết quả này, chúng tôi sẽ kết thúc với một danh sách cường độ tín hiệu và điểm truy cập, hiển thị điểm truy cập có tín hiệu mạnh nhất ở trên:
-71.00 dBm nameOfAccessPoint2
-77.00 dBm nameOfAccessPoint1
Chú ý: Một số điểm truy cập có thể có khả năng mở rộng: Khả năng mở rộng: * Danh sách SSID
Vì vậy, grepping "SSID:" thay vì "SSID" sẽ giúp tránh được thông số bổ sung này sẽ khiến lệnh không thành công.