::使用微软官方工具【PortQry】进行检测的代码:
@echo off & setlocal enabledelayedexpansion
rem 要检测的IP和端口
set server_ip='192.168.1.1,192.168.1.2,192.168.1.3'
set serverport='9922'
rem 模块化调用
call :check
::****其他代码略****
:check
rem ※探测端口模块--PortQry方案※
for /f "tokens=1,* delims=," %%i in ("!server_ip!") do (
echo 正在检测 %%i 的 !serverport! 端口...
rem 这是关键的检测代码:
"!tools_dir!\PortQry.exe" -n %%i -p tcp -e !serverport! | find "LISTENIN" >nul && (
echo 【成功】:可以连接到 %%i:!serverport!
) || (
echo 【失败】:无法连通 %%i:!serverport!
)
echo=
set server_ip=%%j
goto check
)
goto :eof
::*******其他代码略********
::使用telnet命令检测的代码
@echo off & setlocal enabledelayedexpansion
rem 要检测的IP和端口
set server_ip='192.168.1.1,192.168.1.2,192.168.1.3'
set serverport='9922'
rem 模块化调用
call :check_port
::****其他代码略****
:check_port
rem ※探测端口模块--telnet方案※
for /f "tokens=1,* delims=," %%i in ("!server_ip!") do (
echo [No.!check_num!]:正在检测 %%i 的 !serverport! 端口...
rem 新窗口打开telnet,如果端口畅通会立即退出,脚本会在3秒后查看telnet窗口是否退出,如果没有退出表示端口不通!
start /min cmd.exe /k "echo q|telnet -e 'q' %%i !serverport! & exit"
ping -n 3 127.1>nul
rem 查找窗口名为“Telnet ${ip}”的cmd窗口,如果存在则表示此IP不通
tasklist /fi "windowtitle eq Telnet %%i" | find "cmd.exe" >nul && (
echo 【失败】:无法连通 %%i:!serverport!
) || (
echo 【成功】:可以连接到 %%i:!serverport!
)
echo=
set server_ip=%%j
goto check_port
)
goto :eof
::其他代码略...
::使用telnet命令检测的代码
@echo off & setlocal enabledelayedexpansion
rem 要检测的IP和端口
set server_ip='192.168.1.1,192.168.1.2,192.168.1.3'
set serverport='9922'
::****其他代码略****
rem 刚开始先计算telnet.exe的进程数量,避免脚本执行之前就已经存在telnet.exe
call :telnet_num conf
rem 模块化调用
call :check_port
:check_port
set /a check_num+=1
rem ※探测端口模块※
for /f "tokens=1,* delims=," %%i in ("!server_ip!") do (
echo [No.!check_num!]:正在检测 %%i 的 !serverport! 端口...
::call :set_iPSec %%i
rem 使用telnet组合命令进行测试,如果端口畅通会立即退出,脚本会在3秒后查看telnet窗口是否退出,如果没有退出表示端口不通!
start /min cmd.exe /k "echo q|telnet -e 'q' %%i !serverport! & exit"
echo=
set server_ip=%%j
set total_num=!check_num!
goto check_port
)
ping -n 3 127.1>nul
#再次计算telnet进程数量,而且已经排除执行之前就有的telnet数量
call :telnet_num
echo 可用数量为:!telnet_num!
goto :eof
:telnet_num
rem 检测telnet进程数量,已排除脚本之前存在telnet
set conf=0
for /f "delims=*" %%i in ('tasklist ^| findstr "telnet.exe"') do (
if "%1"=="conf" (
set /a conf+=1
) else (
set /a telnet_num+=1
)
)
set /a telnet_num=!telnet_num!-!conf!
goto :eof
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有