Bagaimana menemukan kecepatan antarmuka wlan?

13

Saya mencoba menemukan kecepatan antarmuka jaringan menggunakan file-deskriptor. Sangat mudah untuk melakukannya ethX, cukup menelepon cat /sys/class/net/eth0/speed. Sayangnya metode ini tidak berfungsi dengan antarmuka nirkabel. Ketika saya menelepon /sys/class/net/wlan0/speedsaya mendapat kesalahan: argumen tidak valid.

Jadi, apakah Anda tahu /sys/class/net/eth0/speedanalog seperti antarmuka wlan?

Tural Gurbanov
sumber

Jawaban:

14

Anda dapat menggunakan iwconfigalat ini untuk mengetahui info ini:

$ iwconfig wlan0
wlan0     IEEE 802.11bg  ESSID:"SECRETSSID"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:10:7A:93:AE:BF   
          Bit Rate=48 Mb/s   Tx-Power=14 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=55/70  Signal level=-55 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Jika Anda ingin bit rate dari /syslangsung coba ini:

$ cat /sys/class/net/wlan0/wireless/link
51

Atau dari /proc:

$ cat /proc/net/wireless 
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
 wlan0: 0000   56.  -54.  -256        0      0      0      0      0        0

CATATAN: Nilai untuk tautan dalam contoh ke-2 adalah 56, misalnya

Saya percaya MB / s adalah nilai yang dihitung, sehingga tidak akan disimpan di mana pun khusus untuk perangkat wlan0. Saya pikir itu mengambil bit agregat yang ditransfer melalui antarmuka dan membaginya pada saat data tersebut ditransfer.

Satu cara tambahan untuk mendapatkan informasi ini adalah menggunakan alat iw. Alat ini menggunakan utilitas konfigurasi CLI berbasis nl80211 untuk perangkat nirkabel. Itu harus di distro Linux baru-baru ini.

$ iw dev wlan0 link
Connected to 00:10:7A:93:AE:BF (on wlan0)
    SSID: SECRETSSID
    freq: 2462
    RX: 89045514 bytes (194863 packets)
    TX: 34783321 bytes (164504 packets)
    signal: -54 dBm
    tx bitrate: 48.0 MBit/s

Ini juga menunjukkan jumlah paket yang dikirim dan diterima (RX / TX).

slm
sumber
Aplikasi, yang saya cari solusinya, menggunakan objek seperti file untuk membaca kecepatan jaringan darinya. Dan saya tidak dapat menambahkan bagian kode baru yang dapat membantu saya mengekstrak informasi dari iwconfig. Konfigurasi untuk aplikasi hanya menggunakan jalur ke file dengan kecepatan.
Tural Gurbanov
Apakah Anda belum menginstal iwconfig? Biasanya dipasang jika Anda memiliki jaringan nirkabel. Saya belum harus menginstalnya secara eksplisit pada sistem apa pun yang saya temui yang memiliki nirkabel.
slm
1
Perhatikan bahwa Anda mungkin mendapatkan informasi lebih banyak dari iwconfigsaat menjalankannya sebagai root. Kecepatan, dBm dll hilang untuk saya tanpa root
phiresky
2

Pendekatan oleh slm salah, kecepatan data yang ditunjukkan oleh iwconfigadalah kecepatan maks yang didukung oleh antarmuka untuk tautan. Ini bukan arus transfer data. Gunakan /sys/class/net/<interfacename>/statistics/<tx/rx>_bytesfile untuk mendapatkan per antarmuka byte yang ditransfer langsung.

Pradheesh Shanmugam
sumber