題 互聯網連接看門狗


為了解決一些不可靠的2G / 3G移動寬帶連接的問題,我想建立一個自動服務,一旦互聯網連接斷開一定時間,強行重啟網絡接口本身或整個計算機。這將自動執行我們迄今為止手動執行的操作以恢復連接。

Windows 8是否存在此類實用程序,如果不存在,我如何編寫此類任務的腳本?


對於一些上下文,我們一直在不可訪問的位置安裝一組計算機,作為遠程監控被測系統安裝的方法。無論如何,這些是運行日誌/配置程序的普通舊Windows 8上網本,通常通過2G / 3G加密狗連接。

不幸的是,無論出於何種原因,這些連接往往是相當狡猾並在幾個月後輟學,需要手動重啟。互聯網服務提供商一直沒有什麼幫助,基本上聲稱他們的現代消費設備並非設計用於此類應用(足夠公平),但也無法提出任何替代方案。

公平地說,市場上似乎有可用的工業調製解調器/路由器設備,雖然數量級的價格差異以及系統已經安裝的事實讓我尋找簡單的解決方案。

最後,我不是“超級用戶”,這是我在這裡的第一個問題或活動,所以如果這是一個偏離主題或已經回答的問題,我道歉。


2
2018-03-11 13:54


起源




答案:


您可以編寫一個批處理腳本來ping一些幾乎從不停機的網站(Google!),您可以檢測到您的互聯網是否正在使用該腳本。一旦檢測部分完成,它就很容易重啟PC或批處理文件的撥號連接。 這是我的示例腳本:

@echo off
:begin
ping www.google.com | find "Reply" > nul
if errorlevel 1 goto :failed
goto :OK

:failed
echo Failed
choice /T 3600 /D Y /N
rasdial <dial-up connection name> <username> <password>
goto begin

:OK
echo OK
goto begin

2
2018-03-11 16:08



謝謝!我會用你的腳本作為一個骨架,並嘗試調整我們的需求,花一點時間來修改我的腳本(我從來沒有想過使用選擇作為計時器。) - doynax
我曾經使用過這個,因為我的互聯網連接非常繁瑣。我只是把它放在啟動中,然後讓它完成其餘的工作。 - tumchaaditya


這裡的記錄是我在修補tumchaaditya的解決方案後最終得到的腳本。

它尚未在野外觸發,但似乎在測試時起作用。我會修改這個帖子。

理論上,連續ping的帶寬消耗將增加到約1.5 GB /年,因此定期測試可能更可取。但是我的ISP聲稱只計算實際的有效負載字節,我希望連續的活動可以作為保持活動。

@echo off
set INTERFACE="Local Area Connection"
set TIMEOUT=3600
set IP=8.8.8.8
set LOG="watchdog.log"

echo %DATE% %TIME%: Watchdog started >> %LOG%

:loop
rem First check the interface for an hour by pinging the Google DNS
rem and resetting the networking interface if it should fail.
ping -n %TIMEOUT% -w 1000 -l 0 %IP%
if %errorlevel% NEQ 1 goto :loop
echo %DATE% %TIME%: Connection failed. Restarting interface.. >> %LOG%
netsh interface set interface %INTERFACE% disable
netsh interface set interface %INTERFACE% enable

rem Give it another shot but restart the whole computer if it the communication should still fail
ping -n %TIMEOUT% -w 1000 -l 0 %IP%
if %errorlevel% NEQ 1 goto :loop
echo %DATE% %TIME%: Still no connection. Restarting computer.. >> %LOG%
shutdown /r /c "Internet wathchdog"

echo %DATE% %TIME%: Waiting for system to shut down >> %LOG%
choice /T %TIMEOUT% /D Y /N > NUL
echo %DATE% %TIME%: Gave up on the shut down attempt. Trying again.. >> %LOG%
goto :loop

請注意,重新啟動網絡接口需要管理權限(奇怪的是,重新啟動計算機不會。)

還要注意退出狀態  對於同一子網上的任何非響應系統,顯然仍為0。

我懶得研究如何設置一個合適的守護進程,所以我必須承認通過在自動啟動中創建一個鏈接來運行腳本,將帳戶設置為自動登錄,標記鏈接以管理員身份運行,並禁用UAC。


0
2018-03-19 14:43