Como detectar a velocidade (ethernet rápida ou gigabit) de uma conexão de rede pela linha de comando do Windows

Como detectar a velocidade (ethernet rápida ou gigabit) de uma conexão de rede pela linha de comando do Windows

Para solucionar um problema de rede, gostaria de consultar a "velocidade" real da rede para um determinado adaptador de rede, que pode ser vista ao abrir o "status" de uma conexão de rede no Windows: Configuração de velocidade

No entanto, quero perguntar isso pela linha de comando ou com uma ferramenta pequena e separada, porque preciso solicitar isso para várias conexões de rede e não confio no usuário para buscar as informações corretamente. A configuração "Speed/Duplux" da placa de rede é sempre "Auto Negotiate", então não posso dizer qual "Speed" irei obter.

Responder1

Tente esta consulta WMI:

wmic NIC where NetEnabled=true get Name,Speed

Isso deve fornecer a velocidade de todas as conexões de rede ativas.

Editar: como foi apontado, esta consulta deve ser modificada para funcionar no PowerShell (embora funcione bem no cmd.exe). Então, novamente, no PowerShell você não precisa usar o WMI:

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

Como bônus, isso fornece a velocidade em um formato agradável e legível (por exemplo, "1 Gbps"), em vez do número de bits por segundo.

Responder2

Da resposta de Indrek:

wmic NIC onde NetEnabled = true obtém nome, velocidade

funcionará no prompt de comando. Para uso do PowerShell:

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

(Oondecláusula e qualquerpegaratributo (como Nome e Velocidade), deve ser colocado entre aspas duplas e delimitado por vírgula).

// Editar #1: A expressão GET Name,Speed ​​deve ser colocada entre um único conjunto de aspas duplas. As expressões Get podem não ter espaço entre elas

Responder3

Gostaria de contribuir com a sua parte. Se precisar executar o sed no Windows, você pode baixar o UnxUtils e extrair o sed.exe em c:\Windows\System32

Então, quando você canaliza com sed como sugeriu, funciona. (janelas 8.1)

Obrigado.

wmic NIC where NetEnabled=true get Name, Speed | sed -e s/000000000/Gbit/ | sed -e s/000000\b/Mbit/

Responder4

Você também pode usar:

cat /sys/class/net/enp6s0/speed

Ou quando for eth0, para determinar sua velocidade de conexão (100 ou 1000):

cat /sys/class/net/eth0/speed

informação relacionada