web-dev-qa-db-ja.com

コマンドラインからネットワーク使用率を取得する

Windowsタスクマネージャーには、接続されたネットワークアダプターのリンク速度とネットワーク使用率(使用可能な帯域幅のパーセンテージ)を表示する便利なネットワークタブがあります。

Task Manager Screenshot

コマンドラインからこの情報を取得する方法はありますか?

ネットワークの使用状況に関する情報を提供するコマンドラインオプションは(多数?)多数あります。 これ はそれを扱い、そこでの回答は現在のOPとかなり重複しています。 OPで求められているように、それらの多くは帯域幅の使用率を提供していません。

  1. Wireshark を使用したオプションは上記で説明されています。

  2. typeperf (Windowsネイティブ)も関連しており、いくつかのオプションがあります。 _typeperf -q "Network Interface"_はすべてのオブジェクトをリストします。次に、次のオプションを指定してtypeperf "\Network Interface(*)\...を使用します。

    _\Network Interface(*)\Current Bandwidth
    \Network Interface(*)\Bytes Total/sec
    \Network Interface(*)\Bytes Received/sec
    \Network Interface(*)\Bytes Sent/sec
    \Network Interface(*)\Packets/sec
    \Network Interface(*)\Packets Received/sec
    \Network Interface(*)\Packets Sent/sec
    _

    式は_((Total Bytes/Sec * 8)/current bandwidth) * 100_であることに注意してください。その他の便利なオプション:

    _\Network Interface(*)\Packets Received Unicast/sec
    \Network Interface(*)\Packets Received Non-Unicast/sec
    \Network Interface(*)\Packets Received Discarded
    \Network Interface(*)\Packets Received Errors
    \Network Interface(*)\Packets Received Unknown
    \Network Interface(*)\Packets Sent Unicast/sec
    \Network Interface(*)\Packets Sent Non-Unicast/sec
    \Network Interface(*)\Packets Outbound Discarded
    \Network Interface(*)\Packets Outbound Errors
    \Network Interface(*)\Output Queue Length
    \Network Interface(*)\Offloaded Connections
    _

    フラグ_-sc <samples>_(収集するサンプルの数を指定します。デフォルトでは、CTRL + Cが押されるまでデータを収集します)を使用できます。 公式ドキュメント を参照してください。
    フラグ_-o <filename>_(出力ファイルまたはSQLデータベースのパスを指定します。デフォルトはSTDOUT(コマンドウィンドウに書き込まれる)です)も役立つ場合があります。

  3. さまざまな情報を提供し、それをフォーマットするためにカスタマイズできる興味深いスクリプトが here で指定されています。

これは、PowerShellを介して何もインストールせずに実行できます。

以下を使用して、各アダプターの合計速度と名前を確認できます。

Get-NetAdapter

次に、名前を取得して一意のIDに入力し、次の方法で着信トラフィックの量を確認できます。

Get-Counter "\Network Interface(<unique id>)\Bytes Received/sec"

発信または合計のトラフィックが必要な場合は、次のコマンドを使用します。

Get-Counter "\Network Interface(<unique id>)\Bytes Sent/sec"
Get-Counter "\Network Interface(<unique id>)\Bytes Total/sec"

次のようなものを追加することで、時間の経過に伴う使用状況を測定することもできます。

-SampleInterval 3 -MaxSamples 5

詳細は ヘルプページ を参照してください。

2
David

Wireshark をインストールし、 tshark を使用して統計を収集します。

tshark -z <statistics>

netstat を使用できます:

netstat -a -n

または typeperf

typeperf "Network Interface(*)\Current Bandwidth"
typeperf "Network Interface(*)\Bytes Total/sec"
1
Reddy Lutonadio