Как получить скорость сетевого интерфейса программно в Linux? - PullRequest
2 голосов
/ 11 июня 2009

Меня интересует скорость, указанная в информации о сетевом подключении, например, 100 Мбит / с, 10 Мбит / с, не доступная пропускная способность. Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 11 июня 2009

Если вы хотите сделать это в коде C, найдите mii-tool.c

2 голосов
/ 11 июня 2009

найдено на 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
...