批处理ping不通则声音报警

PING批处理,ping不通则报警一声,并导出到一个TXT中,通的不导出
假如PING一百个IP 10.168.0.1————10.168.0.100,可能有20个不通
不通的报警一声,并导出到同一个TXT中能实现吗?

自定义ip文件为 ip.txt 导出文件为log.txt
ip文件格式: 1行1个IP
@echo off
mode con cols=14 lines=4
echo Working...
for /f "delims=" %%i in (ip.txt) do (ping %%i)|find "TTL">nul||(echo %%i>>log.txt)&&call :warn
goto :eof
:warn
mshta vbscript:createobject("sapi.spvoice").speak("get one")(window.close)
其中末行中的"get one" 为你想发出的声音 可自行修改。



连续IP
@echo off
(for /l %%i in (1,1,100) do ping -n 1 10.168.0.%%i||echo 10.168.0.%%i 不通)>不通.txt
少量不连续IP
@echo off
set #1=10.168.0.1
set #2=10.168.0.14
set #3=10.168.0.50
set #4=10.168.1.200
(for /f "tokens=2 delims==" %%i in ('set #') do ping -n 1 %%i||echo 10.168.0.%%i 不通)>不通.txt
大量不连续IP,每个IP一行,写到IP.txt文本文件里
@echo off
(for /f "tokens=*" %%i in (ip.txt) do ping -n 1 %%i||echo 10.168.0.%%i 不通)>不通.txt



@echo off
for /l %%i in (1,1,100) do (ping 10.168.0.%%i | find "TTL" || (echo &echo 不通 10.168.0.%%i>>ABC.txt))
追问:请问我要自定义IP,该怎么做,因为我的IP不是连续性的
追答:
@echo off
for %%i in (1,2,30,35,50,51,56,100) do (ping -n 1 10.168.0.%%i | find "TTL" || (echo &echo 不通 10.168.0.%%i>>ABC.txt))

 

出处:https://zhidao.baidu.com/question/475472694.html

=======================================================================================

批处理PING某个IP地址,若网络中断则提示报警?

 

很多人都会遇到需要ping一个网段,看哪些IP地址有在使用的情况,网上下载的一些群PING软件要么杀毒软件报毒,要么显示结果每次不一样,于是我综合了网上各种批处理Ping命令后,自己整理了一个批处理,希望能帮助到有需要的朋友,下面我先演示使用过程,最后给出批处理代码。
1、双击运行批处理文件,会弹出一个命令窗口,要求输入IP段,如果不输入,直接按回车的话,则默认为192.168.16段。
这里我输入我的路由分配的IP段,192.168.3并按回车
2、接着会要求输入IP地址起始位,如果不输入,直接按回车的话,则默认为1。
我这里我输入10
3、最后会要求输入IP地址结束位,如果不输入,直接按回车的话,则默认为255。
我这里我输入40
4、开始扫描,会显示起始和结束IP地址,以确认之前没有输入错误。运行的时候不会有其他提示,如果不许要等待完成,可以直接关闭窗口以提前结束本次扫描。
5、扫描完成后,按任意键退出,窗口会自动关闭。
6、在批处理命令文件所在的文件夹,会生成对应的文本文件,里面就有本次扫描的结果(仅记录有通的结果)
7、以下为批处理的代码全文,将其保存在文本文件中,把文本文件的后缀txt替换成bat即可。

复制代码
@echo  off
color F0
rem 设置窗口背景色为白色, 文宇颜色为黑色
title 批处理扫网段(By Tao Ge)
rem 设置窗口标题
echo.
echo 输入你要扫描的IP段, 直接按回车则为192.168.16set /p IpDuan=
    rem 将用户输入赋值给Ip Duan变量
    if "%IpDuan%"="" (set IpDuan=192.168.16)
    rem 判断IpDuan变量是否赋值, 如果为空, 则赋信为192.168.16
echo 输入你要扫描的IP起始位, 直接按回车则为1:
    set /p QiShi=
    rem 将用户输入赋值给QiShi变量
    if "%QiShi%"=="" (set QiShi=1)
    rem 判断QiShi变量是否赋值, 如果为空, 则赋值为1
echo 输入你要扫描的IP结束位, 直接按回车则为255:
    set /p JieShu=
    rem 将用户输入赋值给JieShu变量
    if "%JieShu%"="" (set JieShu=255)
    rem 判断JieShu变量是否赋值, 如果为空, 则赋值为255
    
echo 起始IP:%IpDuan%.%QiShi%
rem 显示起始工P
echo 结束IP:%IpDuan%.%JieShu%
rem 显示结束IP
echo ==================================================== >>Ping-%IpDuan%.txt
rem 记录分割线
echo 开始时间:%date% %time% >>Ping-%IpDuan%.txt
rem 记录开始时间
echo 起始IP:%IpDuan%.%QiShi% >>Ping-%IpDuan%.txt
rem 记录起始IP
echo 结束IP:%IpDuan%.%JieShu% >>Ping-%IpDuan%.txt
rem 记录结束IP
echo 正在扫描, 请等待...
echo 提前结束请直接关闭窗口
@for /l %%n(%QiShi%,1,%JieShu%) do @ping -w 600 -n 1 %IpDuan%.%%n|find /i "ttl" >>Ping-%IpDuan%.txt
rem 开始执行
echo 结束时间:%date% %time% >>Ping-%IpDuan%.txt
rem 记录结束时间
echo ==================================================== >>Ping-%IpDuan%.txt
rem 记录分割线
echo 扫描完毕, 按任意键退出...&pause>nul
复制代码

 

8、最后声明一下,本批处理是本人大量查阅了各种批处理命令后综合出来的,欢迎大家交流斧正。
9、另外,这个批处理中没有对输入的值进行判断,所以如果你随便输入的话,则不能正常运行并记录结果,切记切记。

 

出处:https://www.zhihu.com/question/363815267

=======================================================================================

批处理ping,不通则弹出MsgBox提示

“ping某个IP地址,如果ping不通则在dos窗口提示原因”的批处理bat命令

复制代码
复制代码
@echo off&setlocal enabledelayedexpansion
title Ping检测批处理
mode con cols=88 lines=5&color 0a
::设置要ping的ip地址
set ip=192.168.0.105

::设置要ping的次数
set num=3

echo,&echo 正在对 %ip% 进行 Ping检测,总检测次数为 %num% 次,请耐心等待。。。
set count=%num%
for /l %%a in (1,1,%num%) do (
    title 正在进行第 %%a 次 Ping检测。。。
    ping 127.1 -n "2">nul
    for /f "tokens=4 delims== " %%b in ('ping %ip% -n "1" ^| findstr /c:"平均"') do set ms=%%b
    if not defined ms (
        echo 第 %%a 次 ping 检测失败。
        set /a count-=1
    ) else (
        set /a pms+=!ms:~,-2!
    )
)
cls&echo,&echo 本次 Ping 检测记录了 !count! 次数据,正在计算平均值,请稍等。。。
if not defined pms set msg=网络连接超时,请联系网络管理员。&goto End
set /a ms=!pms!/!count!
if %ms% leq 50 set msg=网络良好。如果还是卡,请联系网络运营商客服反馈。&goto End
if %ms% geq 60 set msg=网络延迟,请联系网络管理员。&goto End
exit
:End
if !count! lss %num% (
    set /a TO=!num!-!count!
    set color=color 0c
    set timeout=(警告:此次检测有 !TO! 次连接超时。)
) else (
    set color=color 0a
)

title Ping检测 -- 检测结果(共检测 %num% 次)
ping 127.1 -n "4">nul
cls&%color%&echo,&echo %msg%%timeout%
echo,&echo 请按任意键退出脚本。
pause>nul&exit
复制代码
复制代码

“ping某个IP地址,如果ping不通则弹出MsgBox提示原因”的批处理bat命令

复制代码
复制代码
@echo off&setlocal enabledelayedexpansion
title Ping检测批处理
mode con cols=88 lines=5&color 0a
::设置要ping的ip地址
set ip=192.168.0.104

::设置要ping的次数
set num=3

echo,&echo 正在对 %ip% 进行 Ping检测,总检测次数为 %num% 次,请耐心等待。。。
set count=%num%
for /l %%a in (1,1,%num%) do (
    title 正在进行第 %%a 次 Ping检测。。。
    ping 127.1 -n "2">nul
    for /f "tokens=4 delims== " %%b in ('ping %ip% -n "1" ^| findstr /c:"平均"') do set ms=%%b
    if not defined ms (
        echo 第 %%a 次 ping 检测失败。
        set /a count-=1
    ) else (
        set /a pms+=!ms:~,-2!
    )
)
cls&echo,&echo 本次 Ping 检测记录了 !count! 次数据,正在计算平均值,请稍等。。。
if not defined pms echo msgbox "网络连接超时,请联系网络管理员。",64,"提示">alert.vbs && start alert.vbs && ping -n 2 127.1>nul && del alert.vbs &goto End
set /a ms=!pms!/!count!
if %ms% leq 50 set msg=网络良好。如果还是卡,请联系网络运营商客服反馈。 &goto End
if %ms% geq 60 echo msgbox "网络延迟,请联系网络管理员。",64,"提示">alert.vbs && start alert.vbs && ping -n 2 127.1>nul && del alert.vbs &goto End
exit
:End
if !count! lss %num% (
    set /a TO=!num!-!count!
    set color=color 0c
    set timeout=(警告:此次检测有 !TO! 次连接超时。)
) else (
    set color=color 0a
)

title Ping检测 -- 检测结果(共检测 %num% 次)
ping 127.1 -n "4">nul
cls&%color%&echo,&echo %msg%%timeout%
echo,&echo 请按任意键退出脚本。
pause>nul&exit
复制代码
复制代码

 

 

出处:https://www.cnblogs.com/rainbow70626/p/7481378.html

=======================================================================================

个人使用

一、检查网络连通性

我需要监控某个服务器,是否宕机了,需要长时间ping这个服务器,如果不通,则发出警报声。

复制代码
@echo off&setlocal enabledelayedexpansion
cls
set ip=192.168.1.1
echo Working...

for /l %%i in (1,1,99999) do (set ttl=
    ping -w 1000 -n 1 %ip% | find /i "ttl" && set ttl=1
    if not defined ttl (
        echo ping %ip% Error......
        echo 
        ping 127.1 -n 2 >nul
    ) else (
        ping -n 2 127.1 >nul
    )
)

pause
复制代码

 

posted on   jack_Meng  阅读(1614)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-05-31 ASP.NET Core 类库中取读配置文件 appsettings.json

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩