如何在Linux上编程获得网络接口速度?

时间:2009-06-11 15:38:24

标签: linux networking performance

我想知道网络连接信息中显示的速度,例如: 100Mb / s,10Mb / s,不是可用带宽。提前谢谢!

2 个答案:

答案 0 :(得分:4)

如果您想在C代码中执行此操作,请查找mii-tool.c

答案 1 :(得分:2)

http://linuxhelp.blogspot.com/2005/10/find-speed-of-your-ethernet-card-in.html

上找到

以编程方式阅读此信息并解析它,寻找100baseTx或类似的

# mii-tool -v eth0
eth0: negotiated 100baseTx-FD flow-control, link ok
  product info: vendor 00:00:20, model 32 rev 1
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
  link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

另外,在同一篇文章中你可以使用它并查找“speed:”行

#ethtool eth0

Settings for eth0:
  Supported ports: [ TP MII ]
  Supported link modes:   10baseT/Half 10baseT/Full
                          100baseT/Half 100baseT/Full
  Supports auto-negotiation: Yes
  Advertised link modes:  10baseT/Half 10baseT/Full
                          100baseT/Half 100baseT/Full
  Advertised auto-negotiation: Yes
  Speed: 100Mb/s
  Duplex: Full
  Port: MII
  PHYAD: 32
  Transceiver: internal
  Auto-negotiation: on
  Supports Wake-on: pumbg
  Wake-on: p
  Current message level: 0x00000007 (7)
  Link detected: yes