วิธีรับเครือข่าย wifi ที่เชื่อมต่อ ssid


8

ฉันต้องการได้รับเครือข่าย wifi ที่เชื่อมต่ออยู่ในขณะนี้ ssid ในสคริปต์ทุบตี ฉันพยายามเขียนสคริปต์สำรองที่สคริปต์จะทำการสำรองข้อมูลไปยังเซิร์ฟเวอร์ NAS หากเชื่อมต่อกับเครือข่าย wifi ในบ้านของฉัน ฉันดูip routeคำสั่งแล้ว แต่จะส่งคืนข้อมูลพื้นฐานบางอย่างเท่านั้น - ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


4

ต่อไปนี้ควรให้สิ่งที่คุณกำลังมองหาโดยสมมติว่าคุณเชื่อมต่อโดยใช้อุปกรณ์ไร้สาย 1 เครื่อง:

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

มันกำลังส่งคืนเครือข่ายที่เชื่อมต่อทั้งหมด ฉันจะหาเครือข่ายที่เชื่อมต่อได้เท่านั้น?
จันทร์ที่

ลองแบบนี้และแจ้งให้เราทราบ: nmcli -t -f active, ssid dev wifi | ตัด -d \ '-f2
Luis Alvarado

ยังคงส่งคืนผลลัพธ์จำนวนมาก
Chan

คุณสามารถ pastebin สิ่งที่คุณเห็นว่าเป็นผลลัพธ์ได้หรือไม่
Luis Alvarado

1
สิ่งนี้ใช้ได้กับฉัน: nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 .
Jacob Evan Shreve


2

คำสั่งนี้ส่งคืน SSID ของอแด็ปเตอร์ไร้สายที่เชื่อมต่อ (สมมติว่าคุณมีเพียงอันเดียว)

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

นอกจากนี้ยังพิมพ์คำเตือนบนจอเทอร์มินัล แต่บน stderr ดังนั้นจึงไม่สำคัญ

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


0
nmcli -t -f NAME connection show --active
  • -t ทำให้เอาต์พุต 'terse' ไม่มีส่วนหัว
  • -f NAME แสดงเฉพาะ ssid
  • --active แสดงเฉพาะการเชื่อมต่อที่ใช้งานอยู่

สิ่งนี้จะพิมพ์ชื่อของการเชื่อมต่อไม่ใช่ SSID โดยปกติแล้ว NAME จะสอดคล้องกับ SSID แต่ไม่เป็นความจริงเสมอไป NAME ของการเชื่อมต่อ NetworkManager สามารถเปลี่ยนเป็นค่าสุ่มใด ๆ
j123b567


0

ด้วย NetworkManager-1.8.4 สิ่งนี้สร้างผลลัพธ์ที่ถูกต้อง

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

มีเหตุผลสำหรับคำสั่งทุกส่วน

  • LANG=C เป็นเพราะเรากำลังใช้ grep ในสตริงที่มีการแปลเพื่อบังคับให้ภาษาอังกฤษ
  • nmcli ... -f active,ssid ... สาเหตุที่จะพิมพ์ ssid ด้วยสถานะการใช้งานในรูปแบบ yes:myssid no:otherssid
  • grep ^yes เราต้องการกรองการเชื่อมต่อที่ใช้งานอยู่ แต่ไม่ใช่ SSID ด้วยข้อความ "ใช่" ดังนั้นจึงเป็นเหตุผล ^
  • cut ... -f2- พิมพ์ส่วนที่เหลือของบรรทัดหลังตัวแยกแรกเพื่อให้เราสามารถมี SSID พร้อมตัวคั่นในนั้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.