标题: [网络连接] 批处理BAT如何检测端口是否ESTABLISHED(连接)? [打印本页]
作者: 咒夜坠 时间: 2014-2-13 15:17 标题: 批处理BAT如何检测端口是否ESTABLISHED(连接)?
本帖最后由 咒夜坠 于 2014-2-14 11:17 编辑
- @echo off&setlocal enabledelayedexpansion
- set /p sc=请输入要监看的端口
- set ss=ESTABLISHED
- for /f "eol=: tokens=1,2,3,4" %%i in ('netstat -an^|find "%sc%"') do (
- if %ss% EQU %%l (
- echo %%i %%j %%k %%l %date% %time% >>log.txt
- ) ELSE (
- ECHO 无连接
- )
- ) echo %%i %%j %%k %%l
复制代码
判断某端口是否连接 连接就输出到文本log
代码二
下面这个代码是我改良后的
但是最后还是会提示
'TCP' 不是内部或外部命令,也不是可运行的程序
或批处理文件。- echo off&setlocal enabledelayedexpansion
- ::批处理文件 请将文件名改成.bat后缀
- set /p sc=请输入要监看的端口
- for /f "delims=" %%a in ('netstat -an^|find "ESTABLISHED"') do echo %%a
- for /f "eol=: tokens=1,2,3,4" %%i in ('netstat -an^|find "ESTABLISHED"') do (
- set ss=%%i %%j %%k %%l
- echo %ss%|find "%sc%"
- )
- pause
复制代码
代码三 功能完善 使用转换软件就可以不显示窗口了- echo off&setlocal enabledelayedexpansion
- ::批处理文件 请将文件名改成.bat后缀
- set /p sc=请输入要监看的端口
- :dk
- for /f "eol=: tokens=1,2,3,4" %%i in ('netstat -an^|find "ESTABLISHED"') do (
- echo %date% %time% %%i %%j %%k %%l|find "%sc%">>log.txt
- )
- ping 127.1>nul
- goto dk
复制代码
作者: DAIC 时间: 2014-2-13 16:56
报错信息是什么?
作者: 咒夜坠 时间: 2014-2-14 10:13
回复 2# DAIC
此时不应有 echo。
应该是最后一个ceho那个错了
我改进了之后没有报错但不输出- @echo off&setlocal enabledelayedexpansion
- set /p sc=请输入要监看的端口
- set ss=ESTABLISHED
- for /f "eol=: tokens=1,2,3,4" %%i in ('netstat -an^|find "%sc%"') do (
- if %ss% EQU %%l (
- echo %%i %%j %%k %%l %date% %time% >>log.txt
- ) ELSE (
- ECHO 无连接
- )
- )
复制代码
作者: DAIC 时间: 2014-2-14 11:18
你测试的是哪个端口?
直接执行这个命令有结果吗?
netstat -an | find "你要测试的端口"
作者: 咒夜坠 时间: 2014-2-17 13:13
回复 4# DAIC
随便填写一个端口 为了测试方便我一般填80端口
作者: DAIC 时间: 2014-2-17 13:40
回复 5# 咒夜坠
我测试了3楼的代码,没有发现问题。你检查一下.bat文件是不是ANSI编码。
作者: 咒夜坠 时间: 2014-3-24 15:33
回复 6# DAIC
最后是测试通过了
但是不知道如果检测到ESTABLISHED要怎么触发,另外的操作
作者: DAIC 时间: 2014-3-25 10:29
回复 7# 咒夜坠
需要触发什么操作?
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |