Come trovare la velocità dell'interfaccia wlan?


13

Sto cercando di trovare la velocità dell'interfaccia di rete usando il descrittore di file. È facile farlo per ethX, solo chiamando cat /sys/class/net/eth0/speed. Purtroppo questo metodo non funziona con l'interfaccia wireless. Quando chiamo /sys/class/net/wlan0/speedottengo un errore: argomento non valido.

Quindi conosci qualche /sys/class/net/eth0/speedanalogico come l'interfaccia wlan?

Risposte:


14

Puoi usare lo iwconfigstrumento per scoprire queste informazioni:

$ 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

Se vuoi che il bit rate /sysprovi direttamente questo:

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

O da /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

NOTA: il valore per il collegamento nel secondo esempio è 56, ad es

Credo che l'MB / s sia un valore calcolato, quindi non verrà memorizzato da nessuna parte in modo specifico per il dispositivo wlan0. Penso che stia prendendo i bit aggregati trasferiti sull'interfaccia e li divida per il tempo impiegato per trasferire tali dati.

Un altro modo per ottenere queste informazioni è utilizzare lo strumento iw. Questo strumento utilizza l'utility di configurazione CLI basata su nl80211 per dispositivi wireless. Dovrebbe essere su qualsiasi recente distribuzione Linux.

$ 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

Questo mostra anche la quantità di pacchetti inviati e ricevuti (RX / TX).


L'applicazione, per la quale cerco una soluzione, utilizza un oggetto simile a un file per leggere la velocità della rete da esso. E non posso aggiungere alcuna nuova parte di codice che possa aiutarmi a estrarre informazioni da iwconfig. La configurazione dell'applicazione utilizza solo il percorso del file con velocità.
Tural Gurbanov,

Iwconfig non è già installato? In genere è installato se si dispone di una rete wireless. Devo ancora installarlo esplicitamente su tutti i sistemi che ho incontrato che dispongono di wireless.
slm

1
Nota che potresti ottenere maggiori informazioni da iwconfigquando lo esegui come root. La velocità, dBm ecc. Mi manca senza root
phiresky,

2

L'approccio di slm è sbagliato, la velocità dei dati mostrata da iwconfigè la velocità massima supportata dall'interfaccia per il collegamento. Non è la corrente a cui vengono trasferiti i dati. Utilizzare il /sys/class/net/<interfacename>/statistics/<tx/rx>_bytesfile per ottenere byte dell'interfaccia trasferiti dal vivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.