我是通过本网站上的其他问题/答案的混搭创建的,以及在ss64.com上找到的东西
我已经把它归结为我想要的东西,现在它只是一个重要的缺失细节,它会让它一遍又一遍地循环,直到建立连接,同时避免不断启动每个服务器周期。
它大量过度设计和骇人听闻,但它基本上是我所学到的所有知识的高潮,并以我能理解的方式解决它。
现在的主要问题是如果丢包率低于100%,它将启动服务器,即使80%的数据包丢失对于连接或运行的任何东西都太高了。
我正在寻找这个至关重要的命令,以确保服务器只有在100%连接时才会启动,并确保不会继续启动服务器如果继续100%连接循环(已发生太多次,运行的服务器的50个实例真的是PC杀手)。
这就是我所拥有的(不要笑得太厉害)。
@echo off
title Server Restart
color 0A
cls
:start
Cls
set ip=xxx.xx.xxx.xx
:ping
ping %ip% -n 5 || goto PingFail
timeout /t 8
cls
echo Ping was Successful to %ip% at %date% %time%
timeout /t 10
ping %ip% -n 5 -w 5000 && goto start
echo Moving To PingFail...
goto PingFail
:Starting
Echo Connection Established... Starting server
**Start Server.bat**
Echo Start Successful
goto start
:PingFail
cls
Echo Connection Has Failed.. looping.
timeout /t 3
goto Pingloop
:Pingloop
echo PINGLOOPING
ping %ip% -n 5 || goto Pingloop
timeout /t 15
goto Starting
答案 0 :(得分:1)
我们在谈论什么样的服务器?你知道大多数防火墙默认阻止ping请求吗? 您可以使用:https://uptimerobot.com/并使用其API获取有效信息。
如果你想确定你有与外界的联系,你可以检查这样的0%损失:
ping -n 1 -4 www.google.com | grep "0% loss"
我从未见过80%或60%的损失但当然你可以将0%改为任何百分比。虽然ping你自己的公共IP并不意味着你有一个可用的互联网连接。你需要ping世界'不是你的家。