![Natives Windows CLI-Tool zum Anzeigen der Netzwerkauslastung pro IP-Adresse](https://rvso.com/image/1606670/Natives%20Windows%20CLI-Tool%20zum%20Anzeigen%20der%20Netzwerkauslastung%20pro%20IP-Adresse.png)
Unter Windows: Suche nach einer Befehlszeilenmethode zum Extrahieren des momentanen Netzwerkdurchsatzes (Ausgang und Eingang), der verbraucht wird. Informationen müssen nach IP-Adressen gruppiert werden.
Dies wäre vergleichbar mit dem Ressourcenmonitor -> Netzwerk -> Netzwerkaktivität in Windows.
Hintergrund: Wir haben 20 Windows-Server und möchten herausfinden, (1) wie viel Netzwerklast sie der Site hinzufügen und (2) mit welchen Systemen sie kommunizieren. Dies tun wir, indem wir über einen Zeitraum von einem Monat Momentaufnahmen machen. Ich habe keinen Zugriff auf die Routerdaten (z. B. weiß niemand, wer den Router unterstützt). Ich verstehe, dass Netsh Trace eine Option sein könnte, aber die Analyse eines solchen Traces übersteigt meine Fähigkeiten ein wenig.
Antwort1
Ich habe auf meiner Festplatte eine Batchdatei gefunden, die Ihnen vielleicht helfen kann. Leider weiß ich nicht mehr, wo ich sie her habe. Aber probieren Sie es trotzdem einfach mal aus: Kopieren Sie einfach den folgenden Code und speichern Sie ihn alsList_Connections.batund per Doppelklick ausführen
@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