Mendeteksi nama perangkat jaringan di bash?

12

Saya mencoba menghidupkan hack yang akan menampilkan nama perangkat jaringan aktif di komputer seseorang melalui bash. Saya membuatnya untuk bekerja. Bagaimana cara saya melakukan ini? Saya tidak ingin sekadar menggunakan "wlan0" atau "eth0" atau sembarang omong kosong umum karena beberapa OS menggunakan nama yang berbeda (Seperti pfSense misalnya).

Brandon
sumber

Jawaban:

28

Tergantung apa yang Anda maksud dengan 'aktif' - jika Anda hanya ingin melihat nama semua perangkat jaringan pada sistem, Anda dapat melihat isi direktori / sys / class / net misalnya

$ ls /sys/class/net
eth0  lo  wlan0

Untuk melihat status, Anda dapat menggunakan ipperintah pada linkobjek apa pun - Anda dapat mengurai output untuk mendapatkan bidang tertentu yang Anda inginkan misalnya untuk melihat hanya nama perangkat dan negara

$ ip -o link show | awk '{print $2,$9}'
lo: UNKNOWN
eth0: DOWN
wlan0: UP

Jika Anda menjalankan versi desktop modern Ubuntu (dengan antarmuka yang dikelola oleh layanan network-manager), maka Anda harus bisa mendapatkan daftar status perangkat yang serupa menggunakan nmcli

$ nmcli dev status
DEVICE     TYPE              STATE
wlan0      802-11-wireless   connected
eth0       802-3-ethernet    unavailable

atau, untuk membatasi output ke bidang tertentu dengan cara yang lebih mudah digunakan dalam skrip

$ nmcli --terse --fields DEVICE,STATE dev status
wlan0:connected
eth0:unavailable

Jika Anda menggunakan manajer jaringan, Anda juga dapat mengakses properti perangkat dan koneksi melalui DBUS - lihat misalnya Tutorial Dbus - Bersenang-senang dengan Network Manager

Steeldriver
sumber
2

Anda dapat menggunakan ifconfiguntuk mendeteksi perangkat jaringan yang aktif, untuk penggunaan output yang sedikit lebih kecil ifconfig -s. ifconfigmencetak antarmuka aktif, dengan -aAnda dapat mencetak semua antarmuka yang dikenali oleh sistem sebagai antarmuka jaringan.

Atau gunakan ip addr.

kekacauan
sumber
0

Saya mungkin tidak tahu jawabannya secara langsung tetapi saya akan memberi Anda daftar perintah jaringan dan mungkin dari sana Anda dapat mencoba menghubungkannya dengan apa yang perlu Anda lakukan.

Untuk melihat jaringan, dan untuk mengeluarkan nama perangkat jaringan yang aktif pada satu komputer, Anda dapat mencoba perintah berikut:

ifconfig

Perintah ini memungkinkan kita untuk mendeteksi perangkat jaringan yang aktif. Anda juga dapat menggunakan perintah ifconfig -s untuk penggunaan keluaran yang lebih kecil. Anda dapat menggunakan perintah ini untuk mengkonfigurasi antarmuka tertentu

ip addr

Perintah ini memungkinkan kita untuk melihat informasi jaringan jaringan.

tcpdump

Perintah ini adalah sniffer jaringan. Apa yang dilakukannya adalah menangkap paket dari antarmuka jaringan dan menafsirkannya untuk Anda.

Jika Anda pernah mendapatkan pesan yang ditolak izinnya, cukup: **gksu yourcommand**untuk mendapatkan izin root dan paksa perintah.

findsmb

Anda dapat menggunakan perintah ini untuk mencantumkan info tentang mesin yang merespons permintaan nama SMB.

Sumber: http://www.gymforgeeks.com/topic/358445-/

Mike Wentworth
sumber