ファイル記述子を使用してネットワークインターフェイスの速度を見つけようとしています。をethX
呼び出すのは簡単cat /sys/class/net/eth0/speed
です。残念ながら、この方法はワイヤレスインターフェイスでは機能しません。呼び出す/sys/class/net/wlan0/speed
とエラーが発生します:引数が無効です。
だから、あなた/sys/class/net/eth0/speed
はWLANインターフェースのようなアナログを知っていますか?
ファイル記述子を使用してネットワークインターフェイスの速度を見つけようとしています。をethX
呼び出すのは簡単cat /sys/class/net/eth0/speed
です。残念ながら、この方法はワイヤレスインターフェイスでは機能しません。呼び出す/sys/class/net/wlan0/speed
とエラーが発生します:引数が無効です。
だから、あなた/sys/class/net/eth0/speed
はWLANインターフェースのようなアナログを知っていますか?
回答:
iwconfig
ツールを使用して、この情報を見つけることができます。
$ 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
ビットレートを/sys
直接取得するには、次を試してください。
$ cat /sys/class/net/wlan0/wireless/link
51
またはから/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
注: 2番目の例のリンクの値は56です。たとえば
MB / sは計算値であるため、wlan0デバイス専用の場所には保存されません。インターフェースを介して転送された総ビット数を取得し、そのデータを転送するのにかかった時間で除算していると思います。
この情報を取得するもう1つの方法は、ツールを使用することですiw
。このツールは、ワイヤレスデバイス用のnl80211ベースのCLI設定ユーティリティです。最近の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
これは、送受信されたパケット(RX / TX)の量も示します。
iwconfig
ルートとして実行すると、より多くの情報が得られる場合があることに注意してください。スピードは、dBm単位など根なしに私のために不足している
slmによるアプローチは誤りです。表示されるデータレートiwconfig
は、リンクのインターフェイスでサポートされる最大速度です。データが転送されるのは現在ではありません。この/sys/class/net/<interfacename>/statistics/<tx/rx>_bytes
ファイルを使用して、インターフェースごとにライブ転送されるバイト数を取得します。