WLANインターフェイスの速度を見つける方法


13

ファイル記述子を使用してネットワークインターフェイスの速度を見つけようとしています。をethX呼び出すのは簡単cat /sys/class/net/eth0/speedです。残念ながら、この方法はワイヤレスインターフェイスでは機能しません。呼び出す/sys/class/net/wlan0/speedとエラーが発生します:引数が無効です。

だから、あなた/sys/class/net/eth0/speedはWLANインターフェースのようなアナログを知っていますか?

回答:


14

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から情報を抽出するのに役立つコードの新しい部分を追加することはできません。アプリケーションの構成では、ファイルへのパスのみを高速で使用します。
Tural Gurbanov

iwconfigが既にインストールされていませんか?通常、ワイヤレスネットワークがある場合にインストールされます。ワイヤレスに遭遇したシステムに明示的にインストールする必要はまだありません。
slm

1
iwconfigルートとして実行すると、より多くの情報が得られる場合があることに注意してください。スピードは、dBm単位など根なしに私のために不足している
phiresky

2

slmによるアプローチは誤りです。表示されるデータレートiwconfigは、リンクのインターフェイスでサポートされる最大速度です。データが転送されるのは現在ではありません。この/sys/class/net/<interfacename>/statistics/<tx/rx>_bytesファイルを使用して、インターフェースごとにライブ転送されるバイト数を取得します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.