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

Chan
sumber

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
Luis Alvarado
sumber
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
16
iwgetid -r

atau

iwgetid wlan0 -r
nmset
sumber
Bekerja sempurna di Ubuntu 16.0.4 !!
atrujillofalcon
untuk python sudo iwgetid -rbekerja untukku. (raspberry pi)
snr - Reinstate Monica
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
Resi
sumber
1

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

jdthood
sumber
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
John Mehorter
sumber
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

Saya mencoba ini:

    iwconfig wlan0 | grep ESSID | cut -d\" -f2
John Goofy
sumber
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
j123b567
sumber