IP 주소당 네트워크 활용도를 표시하는 기본 Windows CLI 도구

IP 주소당 네트워크 활용도를 표시하는 기본 Windows CLI 도구

Windows: 즉각적인 네트워크 처리량(송신 및 수신)을 추출하는 명령줄 방법을 찾고 있습니다. 정보는 IP 주소별로 그룹화되어야 합니다.

Windows의 리소스 모니터 -> 네트워크 -> 네트워크 활동과 유사합니다.

네트워크 활동

배경: 우리는 (1) 사이트에 얼마나 많은 네트워크 부하를 추가하는지, (2) 1년 동안 즉각적인 샘플을 채취하여 어떤 시스템과 통신하고 있는지 이해하고 싶은 20개의 Windows 서버를 보유하고 있습니다. 월. 라우터 데이터에 액세스할 수 없습니다(예: 누가 라우터를 지원하는지 아는 사람 없음). 나는 netsh 추적이 옵션일 수 있다는 것을 이해하지만 그러한 추적을 분석하는 것은 나보다 조금 더 어렵습니다.

답변1

내 하드 드라이브에서 배치 파일을 찾았습니다. 도움이 될 수 있습니다. 죄송합니다. 어디서 가져온 것인지 기억이 나지 않습니다. 하지만 어쨌든 한 번 시도해 보세요. 아래 코드를 복사하여 붙여넣고 다음 이름으로 저장하세요.List_Connections.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

관련 정보