Bagaimana cara mendapatkan jaringan wifi yang terhubung ssid?


8

Saya ingin mendapatkan jaringan wifi yang terhubung saat ini dalam skrip bash. Saya mencoba untuk menulis skrip cadangan di mana skrip akan melakukan pencadangan ke server NAS jika terhubung ke jaringan wifi rumah saya. Saya telah melihat ke dalam ip routeperintah tetapi hanya mengembalikan beberapa informasi dasar - masukkan deskripsi gambar di sini

Jawaban:


4

Berikut ini akan memberikan apa yang Anda cari dengan asumsi Anda terhubung menggunakan 1 perangkat nirkabel:

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

itu mengembalikan semua jaringan yang terhubung. Bisakah saya menemukan jaringan yang terhubung saja?
Chan

Cobalah seperti ini dan beri tahu saya: nmcli -t -f aktif, ssid dev wifi | cut -d \ '-f2
Luis Alvarado

Masih mengembalikan banyak hasil
Chan

Bisakah Anda menempelkan apa yang Anda lihat sebagai output?
Luis Alvarado

1
Ini bekerja untuk saya: nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 .
Jacob Evan Shreve


2

Perintah ini mengembalikan SSID dari adaptor nirkabel yang terhubung (dengan asumsi Anda hanya memilikinya).

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

Ini juga mencetak peringatan pada terminal tetapi pada stderr sehingga tidak masalah

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

Bagaimana kalau iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'?


0
nmcli -t -f NAME connection show --active
  • -t Membuat output 'singkat' sehingga tidak ada header
  • -f NAME Hanya menampilkan ssid
  • --active Hanya menunjukkan koneksi aktif

Ini mencetak NAME dari koneksi dan bukan SSID. NAME biasanya terkait dengan SSID tetapi tidak selalu benar. NAME dari koneksi NetworkManager dapat diubah ke nilai acak apa pun.
j123b567


0

Dengan NetworkManager-1.8.4, ini menghasilkan hasil yang benar

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

Ada alasan untuk setiap bagian dari perintah

  • LANG=C karena kami menggunakan grep pada string yang dilokalkan jadi paksa bahasa Inggris
  • nmcli ... -f active,ssid ... menyebabkan untuk mencetak ssid dengan status aktif dalam bentuk yes:myssid no:otherssid
  • grep ^yes kami ingin memfilter koneksi aktif, tetapi bukan SSID dengan teks "ya" jadi itu alasannya ^
  • cut ... -f2- mencetak sisa garis setelah pemisah pertama sehingga kita dapat memiliki SSID dengan pemisah di dalamnya
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.