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

Como detectar a velocidade (ethernet rápida ou gigabit) de uma ligação de rede através da linha de comando do Windows

Para resolver um problema de rede, gostaria de perguntar a “velocidade” real da rede para um determinado adaptador de rede, que pode ser vista ao abrir o “estado” de uma ligação de rede sob Windows:

Contudo, gostaria de perguntar isto através da linha de comando ou com uma pequena ferramenta separada, porque preciso de solicitar isto para múltiplas ligações de rede e não confio no utilizador para ir buscar a informação correctamente. A configuração do cartão de rede “Speed/Duplux” é sempre “Auto Negociar”, pelo que não posso dizer a partir daí que “Speed” vou obter.

Respostas (4)

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

Experimente esta consulta do WMI:

wmic NIC where NetEnabled=true get Name, Speed

Isso deve dar-lhe a velocidade de todas as ligações de rede activas.

Editar: como já foi salientado, esta consulta tem de ser modificada para funcionar em PowerShell (funciona bem em cmd.exe no entanto). Também no PowerShell não precisa de usar o WMI:

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

Como bónus, isto dá a velocidade num formato agradável e legível por humanos (por exemplo “1 Gbps”), em vez do número de bits por segundo.

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

Da resposta de Indrek:

wmic NIC onde NetEnabled=true recebe Nome, Velocidade

irá funcionar no Prompt de Comando. Para uso em PowerShell:

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

(A cláusula onde, e qualquer atributo get* (como Nome e Velocidade), deve ser incluída entre aspas duplas e delimitada por vírgulas).

// Edição #1: A expressão GET Name,Speed tem de ser incluída dentro de um único conjunto de aspas duplas. Obter expressões pode não ter um espaço entre elas

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

Gostaria de contribuir para a vossa parte. Se precisar de correr sed no Windows, pode descarregar UnxUtils, depois extrair sed.exe em c:\Windows\System32

Depois, quando canaliza com sed como sugeriu, funciona. (Windows 8.1)

Obrigado.

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

Também se pode utilizar:

cat /sys/class/net/enp6s0/speed

Ou quando é eth0, para determinar a sua ligação de velocidade (100 ou 1000):

cat /sys/class/net/eth0/speed