Làm thế nào để có được kết nối mạng wifi ssid?


8

Tôi muốn có được các mạng wifi hiện đang được kết nối ssid trong một tập lệnh bash. Tôi đang cố gắng viết một tập lệnh sao lưu trong đó tập lệnh sẽ thực hiện sao lưu vào máy chủ NAS nếu nó được kết nối với mạng wifi nhà tôi. Tôi đã xem xét ip routelệnh nhưng nó chỉ trả về một số thông tin cơ bản - nhập mô tả hình ảnh ở đây

Câu trả lời:


4

Phần sau đây sẽ cung cấp những gì bạn đang tìm kiếm giả sử bạn được kết nối bằng 1 thiết bị không dây:

nmcli -t -f ssid dev wifi| cut -d\' -f2

nó trả về tất cả các mạng được kết nối. Tôi chỉ có thể tìm thấy mạng được kết nối?
Chan

Hãy thử nó như thế này và cho tôi biết: nmcli -t -f hoạt động, ssid dev wifi | cắt -d \ '-f2
Luis Alvarado

Vẫn trả lại nhiều kết quả
Chan

Bạn có thể pastebin những gì bạn đang xem là đầu ra?
Luis Alvarado

1
Điều này làm việc cho tôi : nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 .
Jacob Evan Shreve


2

Lệnh này trả về SSID của bộ điều hợp không dây được kết nối (giả sử bạn chỉ có một).

iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*/\1/'

Nó cũng in cảnh báo trên thiết bị đầu cuối nhưng trên thiết bị lỗi chuẩn nên không thành vấn đề

remi@host~$id:~$ id=$(iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*/\1/')
eth0      no wireless extensions.
lo        no wireless extensions.
virbr0    no wireless extensions.
tap0      no wireless extensions.

remi@host:~$ echo $id
CISPI

1

Thế nào iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'?


0
nmcli -t -f NAME connection show --active
  • -t Làm cho đầu ra 'terse' để không có tiêu đề
  • -f NAME Chỉ hiển thị các ssid
  • --active Chỉ hiển thị các kết nối hoạt động

Điều này in TÊN kết nối và không phải SSID. NAME thường tương ứng với SSID nhưng không phải lúc nào cũng đúng. TÊN kết nối NetworkManager có thể được thay đổi thành bất kỳ giá trị ngẫu nhiên nào.
j123b567


0

Với NetworkManager-1.8.4, điều này tạo ra kết quả chính xác

LANG=C nmcli -t -f active,ssid dev wifi | grep ^yes | cut -d: -f2-

Có một lý do cho mọi phần của lệnh

  • LANG=C là bởi vì chúng tôi đang sử dụng grep trên chuỗi nội địa hóa nên buộc tiếng Anh
  • nmcli ... -f active,ssid ... nguyên nhân để in ssid với trạng thái hoạt động ở dạng yes:myssid no:otherssid
  • grep ^yes chúng tôi muốn lọc các kết nối hoạt động, nhưng không phải SSID với văn bản "có" vì vậy đó là lý do cho ^
  • cut ... -f2- in phần còn lại của dòng sau dấu phân cách đầu tiên để chúng ta có thể có SSID với dấu phân cách trong đó
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.