根据 netstat 连接状态更改 cmd 背景颜色

Change cmd background color depending of netstat connection status

有谁知道如何使用 netstat 命令更改批处理 file/cmd 背景颜色?

我实际上正在使用自动刷新 'netstat' 命令监控一些银行收单机构与服务器的连接。

title BANK #1
netstat -n 1 -an | find "IP_ADDRESS:PORT"
pause

和cmd回显:

如果建立连接:

TCP    MY_SERVER_IP_ADD:LIST_PORT        REMOTE_IP_ADD:PORT    ESTABLISHED

如果连接失败:

TCP    MY_SERVER_IP_ADD:LIST_PORT        REMOTE_IP_ADD:PORT    SYN_SENT

我需要知道背景颜色是否会根据状态变化,我的意思是,当状态为 ESTABLISHED 时,将背景变为绿色。当状态为 SYN_SENT 时,将背景变为红色。

我建议使用远程服务器的 ip 地址从连接列表中查找字符串。 字符串解析后,您可以获得连接状态。 根据连接状态更改颜色。

@echo off

REM define remote server IP
set "IP=8.8.8.8"

REM cycle's starting position
:loop

REM pause for 1 second
choice /c YN /t 1 /D Y>NUL

REM parsing connection list
for /f "tokens=4*" %%A in ('netstat -p tcp -na ^| find/i"%IP%"') do (

REM change background color to green
if "%%A"=="ESTABLISHED" color 27 

REM change background color to red
if "%%A"=="SYN_SENT" color 47
)

REM go to cycle's staring position
goto loop

这是根据您的要求创建的多功能模板,但易于修改

将根据要求呈绿色或红色,但在其他情况下呈灰白色

@echo off & Title Bank#1
REM Change the following as required
set "LocalAddress=192.168"
set "ForeignAddress=Chromecast"


:MAIN
timeout 1 > nul
netstat -p tcp | find "%LocalAddress%" | find "%ForeignAddress%" | find "ESTABLISHED"
if %errorlevel%==0 color A0 & echo Still Established & goto main
netstat -p tcp | find "%LocalAddress%" | find "%ForeignAddress%" | find "SYN_SENT"
if %errorlevel%==0 color C0 & echo SYN_SENT & goto main
netstat -p tcp | find "%LocalAddress%"
color E0 & echo Check Incorrect Link Condition Between "%LocalAddress%" and "%ForeignAddress%"
goto Main