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

Jak wykryć prędkość (fast lub gigabit ethernet) połączenia sieciowego w wierszu poleceń systemu Windows

Aby rozwiązać problem z siecią, chciałbym zapytać o rzeczywistą “prędkość” sieci dla danej karty sieciowej, która może być widoczna podczas otwierania “statusu” połączenia sieciowego w systemie Windows:

Jednak chcę to zapytać przez linię poleceń lub za pomocą małego, oddzielnego narzędzia, ponieważ muszę zażądać tego dla wielu połączeń sieciowych i nie ufam użytkownikowi, że pobierze te informacje poprawnie. Ustawienie karty sieciowej “Speed/Duplux” jest zawsze “Auto Negotiate”, więc nie mogę powiedzieć z tego, jaką “Prędkość” otrzymam.

Odpowiedzi (4)

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

Spróbuj tego zapytania WMI:

wmic NIC where NetEnabled=true get Name, Speed

To powinno dać ci prędkość wszystkich aktywnych połączeń sieciowych.

Edycja: jak już wspomniano, zapytanie to musi zostać zmodyfikowane, aby działało w PowerShell (działa jednak dobrze w cmd.exe). Z drugiej strony, w PowerShell nie trzeba w ogóle używać WMI:

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

Jako bonus, daje to prędkość w ładnym, czytelnym dla człowieka formacie (np. “1 Gbps”), a nie liczbę bitów na sekundę.

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

Z odpowiedzi Indreka:

wmic NIC where NetEnabled=true get Name, Speed

zadziała w Command Prompt. Dla PowerShell użyj:

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

(Klauzula where, oraz każdy atrybut get (jak Name i Speed), muszą być ujęte w podwójne cudzysłowy i oddzielone przecinkami).

// Edit #1: Wyrażenie GET Name,Speed musi być zawarte w pojedynczym zestawie podwójnych cudzysłowów. Wyrażenia Get nie mogą mieć spacji pomiędzy sobą

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

Chciałbym wnieść swój wkład do twojego udziału. Jeśli potrzebujesz uruchomić sed w systemie Windows, możesz pobrać UnxUtils, a następnie rozpakować sed.exe do c:\system32

Następnie, gdy potok z sed, jak sugerowałeś, działa. (Windows 8.1)

Dzięki.

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

Możesz również użyć:

cat /sys/class/net/enp6s0/speed

Lub gdy jest to eth0, aby określić prędkość połączenia (100 lub 1000):

cat /sys/class/net/eth0/speed.