我是这一切的新手,所以请放轻松。:) 尝试制作 PortQry 脚本,该脚本检查文件中的多个远程 IP 地址以打开或关闭特定的 TCP 端口。不允许从该 Windows 服务器运行任何第 3 方工具(无 MS),因此唯一的选择是使用某种批处理脚本。
背景: 我们的设备运行多张移动运营商 sim 卡。所有 IP SIM 卡地址都是内部地址 (10.*),并且设备使用特定端口。当设备不工作时,不仅需要检查 ping,还需要检查端口是否正常工作,否则将无法与它们建立连接。所以这个脚本不打算用于监控,而是纯粹的诊断。
在将执行脚本的同一文件夹中是这些文件:
- “portqry.exe”;
- 带有IP地址的“ip.txt”,其中每个地址都在新行中;
预期结果
在窗口上应该以如下格式显示结果:IP、端口、正在侦听(打开)或未侦听(关闭);
打开端口的IP地址应保存在“alive.txt”中,每个IP都在新行中;
端口关闭的IP地址应保存在“dead.txt”中,每个IP都在新行中;
现在出结果
保存到“dead.txt”的所有 IP 地址
每次显示的 Ip 都会重复打开窗口
查询目标系统称为:ip.txt 正在尝试解析为 IP 地址
bat文件中的代码:
@echo off
set file=portqry.exe
set iplist=ip.txt
:readfile
for /f "tokens=1-2 delims=:" %%V in (%iplist%) do call :chkport %%V
goto end
:chkport
set ip=%1
portqry -n %ip% -e 5432 -p TCP
if %ERRORLEVEL%==0 echo %IP% >>alive.txt
if NOT %ERRORLEVEL%==0 echo %IP% >>dead.txt
set ip=
goto end
:end