我和 5 名同事在办公室工作。我们都共用同一个互联网连接。连接进入一台电脑,我们在电脑上创建了一个热点,每个人都通过 WIFI 访问这台电脑。我们每天只有 3 个小时的集体上网时间。此后,如果有人想使用互联网,他必须用个人账户登录。当这种情况发生时通常情况下,团队的其他成员可以与使用个人账户的人分享一些私人互联网信息,只要它们不消耗大量带宽。
我面临的问题是,当个人账户开启时,我无法立即知道互联网是否可用。有时只持续几分钟或非常不规律。这都是由所有者决定的,他试图尽可能节省互联网,因此他经常连接和断开连接以节省互联网时间(在古巴,1 小时互联网费用为 1 美元,平均工资为每月 25-30 美元)。
我尝试关注带宽使用情况,但这并不准确,因为有时互联网已打开,但没有使用任何带宽消耗服务。例如,所有者只是在使用聊天。
有没有办法可以精确到秒地知道我的电脑是否可以访问互联网(无论是通过带有插件的浏览器还是通过 Windows 小工具)。Windows 自带的小灰色图标(在栏上的时钟旁边)在这方面非常不准确。我对测量我的互联网速度一点也不感兴趣。
我知道我可以随时打开浏览器并谷歌搜索一些东西,但我正在寻找一种更自动化的替代方案。最后,我可能必须创建一个每秒(或每 10 秒)执行一次的服务,检查互联网并在浮动小部件中直观地报告它。但也许这已经存在了。
我并不关心这个个人账户能用多久。因为当它处于开启状态时,我可以执行一些简短的日常任务,比如下载电子邮件或在 StackO 上查找新问题,然后离线时输入答案等。我希望能够立即(几秒钟)知道何时可以使用互联网。
答案1
打开记事本并将以下文本复制粘贴到其中:
@ECHO OFF
:Retry
PING -n 1 -w 2000 1.1.1.1
IF ERRORLEVEL 1 GOTO Retry
ECHO "Internet ON!"
将其保存在桌面上InternetON.CMD
并双击它。
如果显示黑屏,每 2 秒有东西移动一次,则一切就绪!
如果它只是再次显示上述文本,请打开命令提示符并输入:
CD %USERPROFILE%\Desktop
REN InternetON.CMD.txt InternetON.CMD
EXIT
现在一切就绪!只需再次双击即可。
选修的:要在互联网开启时添加蜂鸣声,您必须再次打开命令提示符并输入:
ECHO Ctrl+G >> %userprofile%\Desktop\InternetON.CMD
右键单击该文件并再次编辑,并将有趣的方块移动到最后一个之后"
如果互联网开始工作,它会警告你,当你注意到互联网再次关闭时,只需再次双击它即可。虽然不是很漂亮的小玩意,但它能满足你的一切需求!
答案2
受到 Fabby 精彩回答的启发,我想发布一下我对他答案的改编:
我自定义了一些内容。例如,我录制了两个 .mp3 音频,而不是哔哔声。一个表示互联网已打开,另一个表示互联网已关闭。我发现这里播放隐形音乐的方法(适用于 Windows 10)。我修改了 Fabby 提出的原始脚本,以跟踪我何时有或没有互联网。我不得不按照 DavidPostil 最初的建议切换到 8.8.8.8 DNS,因为当互联网关闭时,地址 1.1.1.1 在我的网络中具有实际意义
@ECHO OFF
:whileNoInternet
set "host=8.8.8.8"
::check if internet is working
PING -n 1 -w 5000 "%host%" | findstr /r /c:"[0-9] *ms"
if %errorlevel% neq 0 (
::the internet is not working keep cheking until it does
echo No internet yet %TIME%
GOTO whileNoInternet
)
echo we gained internet
::the internet is working play internet ON song
@echo off
set "file=InternetON_GOGOGO.mp3"
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
echo Sound.URL = "%file%"
echo Sound.Controls.play
echo do while Sound.currentmedia.duration = 0
echo wscript.sleep 100
echo loop
echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
start /min sound.vbs
@ECHO OFF
:whileInternet
sleep.exe 5s
::check if internet is still working
PING -n 1 -w 1000 "%host%" | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
::the internet is still working keep cheking until it does not
echo We have internet %TIME%
GOTO whileInternet
)
:: detect possible internet glitches (do not trust the first failure)
echo internet glitch detected
sleep.exe 10s
PING -n 1 -w 1000 "%host%" | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
::the internet is still working keep cheking until it does not
echo We have internet %TIME%
GOTO whileInternet
)
:: if it failed twice in a row most likely internet is down
echo we lost internet
::the internet is not working anymore, play internet OFF song
@echo off
set "file=InternetHasFallen.mp3"
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
echo Sound.URL = "%file%"
echo Sound.Controls.play
echo do while Sound.currentmedia.duration = 0
echo wscript.sleep 100
echo loop
echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
start /min sound.vbs
::start monitoring if it comes back
GOTO whileNoInternet