回复 4# xuxianking
它这个代码的问题,出在,- for /f "tokens=2 delims=[]" %%a in ('ping -n 1 %URL% ^| findstr "%URL%"') do
复制代码 中的 findstr "%URL%" 这里。因为
ping -n 1 bbs.csdn.net
正在 Ping bbs.csdn.net [47.95.50.136] 具有 32 字节的数据:
ping -n 1 www.baidu.com
正在 Ping www.a.shifen.com [14.215.177.38] 具有 32 字节的数据:
看到两个Ping后返回的域名区别没有,所以换了域名,如果Ping返回的不是跟原域名,一模一样,就出错了。
所以直接修改一下,findstr 后面的,查找变量就好了。
我也发现这个问题了,修改了一下,就可以了。- @echo off
- echo.
- set /p URL=请输入需要监控的完整域名FQDN:
- del IP.txt
- del URL_IP.log
- set "FileIP=IP.txt"
- set "FileLog=URL_IP.log"
- if not exist "%FileIP%" (
- >"%FileIP%" echo 0.0.0.0
- )
- if not exist "%FileLog%" (
- >"%FileLog%" type nul
- )
-
- :Monitor
- for /f "tokens=2 delims=[]" %%a in ('ping -n 1 %URL% ^| findstr/i [') do (
- set IP_Current=%%a
- )
- set /p IP_Previous=<"%FileIP%"
- echo %IP_Previous% -- %IP_Current%
- if "%IP_Previous%" neq "%IP_Current%" (
- >"%FileIP%" echo %IP_Current%
- >>"%FileLog%" echo [%date% %time%] %IP_Current%
- )
- timeout /nobreak /t 3 >nul
- goto :Monitor
复制代码
|