ネットワークの問題をトラブルシューティングするには、特定のネットワーク アダプタの実際のネットワーク「速度」を問い合わせます。これは、Windows でネットワーク接続の「ステータス」を開くと確認できます。
ただし、複数のネットワーク接続に対してこれを要求する必要があり、ユーザーが情報を適切に取得できるとは限らないため、コマンド ラインまたは小さな別のツールを使用してこれを照会したいと考えています。ネットワーク カードの「速度/デュプレックス」設定は常に「自動ネゴシエーション」であるため、そこから取得する「速度」がわかりません。
答え1
次の WMI クエリを試してください:
wmic NIC where NetEnabled=true get Name,Speed
これにより、すべてのアクティブなネットワーク接続の速度がわかります。
編集: 指摘されているように、このクエリは PowerShell で動作するように変更する必要があります (ただし、cmd.exe では問題なく動作します)。また、PowerShell では WMI を使用する必要はまったくありません。
Get-NetAdapter | where Status -eq "Up" | select InterfaceDescription, LinkSpeed
ボーナスとして、これにより、速度が 1 秒あたりのビット数ではなく、人間が読みやすい形式 (例: 「1 Gbps」) で表示されます。
答え2
Indrek の回答から:
wmic NIC where NetEnabled=true の名前と速度を取得します
コマンドプロンプトでは動作します。PowerShellの場合は以下を使用します。
wmic NIC where "NetEnabled='true'" get "Name,Speed"
(どこ条項、および得る属性 (名前や速度など) は、二重引用符で囲み、カンマで区切る必要があります。
// 編集 #1: GET 式の名前、速度は、1 組の二重引用符で囲む必要があります。GET 式の間にはスペースを入れることはできません。
答え3
あなたのシェアに貢献したいと思います。Windowsでsedを実行する必要がある場合は、UnxUtilsをダウンロードし、sed.exeをc:\Windows\System32に抽出してください。
その後、提案されたように sed でパイプすると、動作します。(Windows 8.1)
ありがとう。
wmic NIC where NetEnabled=true get Name, Speed | sed -e s/000000000/Gbit/ | sed -e s/000000\b/Mbit/
答え4
以下も使用できます:
cat /sys/class/net/enp6s0/speed
または、eth0 の場合、接続速度 (100 または 1000) を確認するには、次のようにします。
cat /sys/class/net/eth0/speed