2012-04-16 07:57:40 +0000 2012-04-16 07:57:40 +0000
40
40

Come rilevare la velocità (fast o gigabit ethernet) di una connessione di rete tramite la linea di comando di Windows

Per risolvere un problema di rete vorrei chiedere la reale “velocità” di rete per una data scheda di rete, che può essere vista quando si apre lo “stato” di una connessione di rete sotto Windows:

Tuttavia, voglio chiedere questo tramite la linea di comando o con un piccolo strumento separato, perché ho bisogno di richiederlo per più connessioni di rete e non mi fido che l'utente recuperi le informazioni correttamente. L'impostazione “Speed/Duplux” della scheda di rete è sempre “Auto Negotiate”, quindi non posso dire da questo quale “Speed” otterrò.

Risposte (4)

63
63
63
2012-04-16 08:18:22 +0000

Prova questa query WMI:

wmic NIC where NetEnabled=true get Name, Speed

Che dovrebbe darvi la velocità di tutte le connessioni di rete attive.

Modifica: come è stato sottolineato, questa query deve essere modificata per funzionare in PowerShell (ma funziona bene in cmd.exe). Poi di nuovo, in PowerShell non hai bisogno di usare WMI:

Get-NetAdapter | where Status -eq "Up" | select InterfaceDescription, LinkSpeed

Come bonus, questo dà la velocità in un bel formato leggibile dall'uomo (ad esempio “1 Gbps”), piuttosto che il numero di bit al secondo.

6
6
6
2016-06-04 00:36:35 +0000

Dalla risposta di Indrek:

wmic NIC dove NetEnabled=true ottenere Nome, Velocità

funzionerà nel Prompt dei comandi. Per PowerShell usare:

wmic NIC where "NetEnabled='true'" get "Name,Speed"

(La clausola where, e qualsiasi attributo get (come Name e Speed), devono essere racchiusi tra doppi apici e delimitati da virgole).

// Edit #1: L'espressione GET Name,Speed deve essere racchiusa in un singolo set di doppi apici. Le espressioni Get non possono avere uno spazio tra loro

2
2
2
2015-04-16 16:15:45 +0000

Vorrei contribuire alla tua quota. Se hai bisogno di eseguire sed in Windows, puoi scaricare UnxUtils, poi estrarre sed.exe in c:\Windows\System32

Poi quando fai un pipe con sed come hai suggerito, funziona. (Windows 8.1)

Grazie.

wmic NIC where NetEnabled=true get Name, Speed | sed -e s/000000000/Gbit/ | sed -e s/000000\b/Mbit/
-1
-1
-1
2018-09-26 20:55:48 +0000

Puoi anche usare:

cat /sys/class/net/enp6s0/speed

O quando è eth0, per determinare la velocità di connessione (100 o 1000):

cat /sys/class/net/eth0/speed