如何找到WLAN接口的速度?


13

我正在尝试使用文件描述符查找网络接口的速度。为此很容易ethX,只需致电即可cat /sys/class/net/eth0/speed。不幸的是,这种方法不适用于无线接口。当我打电话给/sys/class/net/wlan0/speed我时报错:参数无效。

那么,您知道/sys/class/net/eth0/speed无线接口的类似模拟吗?

Answers:


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

注意:在第二个示例中的链接的值为56,例如

我相信MB / s是计算得出的值,因此不会将其存储在专门用于wlan0设备的任何地方。我认为这是通过接口传输的总比特数除以表示传输数据的时间。

获取此信息的另一种方法是使用该工具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以root用户身份运行时,您可能会获得更多信息。没有root,速度,dBm等对我来说是丢失的
phiresky '18

2

slm的方法是错误的,显示的数据速率iwconfig是链接接口支持的最大速度。这不是当前数据传输的时间。使用该/sys/class/net/<interfacename>/statistics/<tx/rx>_bytes文件可实时获取每个接口传输的字节数。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.