Para solucionar un problema de red, me gustaría consultar la "velocidad" real de la red para un adaptador de red determinado, que se puede ver al abrir el "estado" de una conexión de red en Windows:
Sin embargo, quiero consultar esto a través de la línea de comando o con una pequeña herramienta separada porque necesito solicitar esto para múltiples conexiones de red y no confío en que el usuario obtenga la información correctamente. La configuración de "Velocidad/Duplux" de la tarjeta de red siempre es "Negociación automática", por lo que no puedo saber qué "Velocidad" obtendré.
Respuesta1
Pruebe esta consulta WMI:
wmic NIC where NetEnabled=true get Name,Speed
Eso debería darle la velocidad de todas las conexiones de red activas.
Editar: como se ha señalado, esta consulta debe modificarse para que funcione en PowerShell (aunque funciona bien en cmd.exe). Por otra parte, en PowerShell no es necesario utilizar WMI en absoluto:
Get-NetAdapter | where Status -eq "Up" | select InterfaceDescription, LinkSpeed
Como beneficio adicional, esto proporciona la velocidad en un formato agradable y legible por humanos (por ejemplo, "1 Gbps"), en lugar del número de bits por segundo.
Respuesta2
De la respuesta de Indrek:
wmic NIC donde NetEnabled=true obtiene nombre, velocidad
funcionará en el símbolo del sistema. Para uso de PowerShell:
wmic NIC where "NetEnabled='true'" get "Name,Speed"
(Eldóndecláusula y cualquierconseguiratributo (como Nombre y Velocidad), debe estar entre comillas dobles y delimitado por comas).
// Edición #1: GET expresión Nombre, Velocidad debe estar entre comillas dobles. Las expresiones de obtención pueden no tener un espacio entre ellas.
Respuesta3
Me gustaría contribuir con tu parte. Si necesita ejecutar sed en Windows, puede descargar UnxUtils y luego extraer sed.exe en c:\Windows\System32
Luego, cuando canalizas con sed como sugeriste, funciona. (Windows 8.1)
Gracias.
wmic NIC where NetEnabled=true get Name, Speed | sed -e s/000000000/Gbit/ | sed -e s/000000\b/Mbit/
Respuesta4
También puedes usar:
cat /sys/class/net/enp6s0/speed
O cuando es eth0, para determinar su velocidad de conexión (100 o 1000):
cat /sys/class/net/eth0/speed