![IP アドレスごとのネットワーク使用率を表示するネイティブ Windows CLI ツール](https://rvso.com/image/1606670/IP%20%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%94%E3%81%A8%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E4%BD%BF%E7%94%A8%E7%8E%87%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%83%8D%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96%20Windows%20CLI%20%E3%83%84%E3%83%BC%E3%83%AB.png)
Windows の場合: 消費されている瞬間的なネットワーク スループット (出力と入力) を抽出するコマンド ラインの方法を探しています。情報は IP アドレスごとにグループ化する必要があります。
これは、Windowsのリソースモニター -> ネットワーク -> ネットワークアクティビティに似ています。
背景: 弊社には 20 台の Windows サーバーがあり、1 か月間の瞬間サンプルを取得して、(1) サイトにどの程度のネットワーク負荷が加わっているか、(2) どのシステムと通信しているかを把握したいと考えています。ルーターのデータにはアクセスできません (ルーターをサポートしているのは誰かわからないなど)。netsh トレースがオプションになる可能性があることは理解していますが、そのようなトレースを分析するのは少々無理です。
答え1
ハードドライブでバッチファイルを見つけたので、役に立つかもしれません。どこで入手したか覚えていないので申し訳ありませんが、とにかく試してみてください。以下のコードをコピーして貼り付け、次のように保存してください。リスト接続.batダブルクリックで実行
@echo off
Title List connections
Mode 90,42 & Color 0A
setlocal enabledelayedexpansion
Set "Log=%~dpn0.txt"
If exist "%Log%" Del "%Log%"
::Used to convert PID to process names.
for /f "tokens=1 delims=" %%A in ('tasklist') do call :PID %%A
echo [Program:PID] LocalIP:Port RemoteIP:Port
(echo [Program:PID] LocalIP:Port RemoteIP:Port & echo;)>"%Log%"
echo.
for /f "tokens=1-27 delims=: " %%A in ('netstat -ano') do call :netstat %%A %%B %%C %%D %%E %%F %%G %%H %%I %%J %%K %%L %%M %%N %%O %%P %%Q %%R %%S %%T %%U
start "log" "%Log%"
pause>nul
exit /b
:PID
set pid_%2=%1
exit /b
:netstat
set type=%1
set srcIP=%2
set srcPort=%3
set dstIP=%4
set dstPort=%5
set state=%6
set pid=%7
set name=!pid_%pid%!
::Filter local connections away.
if "%state%"=="" exit /b
if not "%type%"=="TCP" exit /b
if "%srcIP%"=="Local" exit /b
if "%dstIP%"=="*" exit /b
if "%srcIP%"=="%dstIP%" exit /b
if "%pid%"=="" exit /b
if "%dstPort%"=="[" (
set state=LISTENING
set srcPort=%dstIP%
set pid=%9
)
if "%dstPort%"=="[" set name=!pid_%pid%!
if "%name%"=="" set name=Unknown
::Formatting \tabs
set srcPortTab= %srcPort%
set namePidTab=[%name%:%pid%]
set srcIpPortTab=%srcIP%:%srcPort%
set dstIpPortTab=%dstIP%:%dstPort%
set stateTab=%state%
set namePidTab=%namePidTab:~0,20%
set srcIpPortTab=%srcIpPortTab:~0,21%
set dstIpPortTab=%dstIpPortTab:~0,21%
set stateTab=%stateTab:~0,12%
set srcPortTab=%srcPortTab:~-5%
if not "%state%"=="LISTENING" echo.%namePidTab% %srcIPPortTab% %dstIPPortTab% %stateTab%
if "%state%"=="LISTENING" echo.%namePidTab% Listening on: %srcPortTab%
(
if not "%state%"=="LISTENING" echo.%namePidTab% %srcIPPortTab% %dstIPPortTab% %stateTab%
if "%state%"=="LISTENING" echo.%namePidTab% Listening on: %srcPortTab%
)>>"%Log%"
exit /b