中華電信規則每3天必需強制斷線重新撥號一次
如何寫一個.py文件打包成執行檔丟給排程管理員
每隔2天或每隔幾個小時檢查一次是否斷線?
斷線自動重新撥號連線.
或是在2天10小時的時候就自己先強制斷線重新撥號連線
換一個IP?
不知道有沒有哪位高手大大有寫過的?
其實我想問,中華電信什麼時候有這樣的規則的?
我本身也是用中華電信的。就我所使用的情況,我已經將近10多年沒在做重新連線的動作。
且本身我的電腦,也並沒有在關機。
還有一台SERVER是不能關機的。
回來原題。其實我倒是建議您使用一台AP來解決您的問題。
而不是用電腦來用軟體處理。
浮動制沒去申請固I的話好像就有這限制,申請固I的話就不會。
一般浮動的話。我是不會用PPPOE就是了。
直接使用DHCP的方式。
但確實,我沒在使用浮動的PPPOE。所以不清楚有這樣的限制。
但大多數我就算會使用。也會交給AP去處理。
反正AP斷線了會自動重連。
用AP沒這個問題是因為AP會自動重新撥號.但是用PC直接接小烏龜的話PC不會自動重撥.我是因為有一台電腦需要獨立上下傳到one driver因為AP我開多線跑到500m,ap的CPU會到100%蠻喘的所以才會直接接小烏龜喔.
以下是用 Python 寫一個判斷中華斷線自動重新撥號的 exe 檔案的範例:
Python
import os
import sys
import time
import subprocess
def check_internet():
"""
檢查網路連線狀態
:return:
True 連線正常
False 連線異常
"""
ping_cmd = "ping -c 1 www.google.com"
ping_result = subprocess.Popen(ping_cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode("utf-8")
if "1 packets transmitted, 1 received, 0% packet loss" in ping_result:
return True
else:
return False
def main():
"""
主程式
"""
if check_internet():
print("網路連線正常")
else:
print("網路連線異常,正在重新撥號...")
subprocess.Popen("dialup", shell=True)
if __name__ == "__main__":
main()
請謹慎使用程式碼。瞭解詳情
這個程式使用 ping 指令來檢查網路連線狀態。如果連線正常,程式會印出「網路連線正常」。如果連線異常,程式會印出「網路連線異常,正在重新撥號...」,然後使用 dialup 指令來重新撥號。
要將這個程式轉換成 exe 檔案,可以使用 pyinstaller 工具。以下是轉換步驟:
安裝 pyinstaller 工具:
pip install pyinstaller
將程式檔案存放在一個目錄中,例如 ./auto_dialup。
在 ./auto_dialup 目錄中執行以下命令:
pyinstaller --onefile auto_dialup.py
這會在 ./auto_dialup 目錄中生成一個名為 auto_dialup.exe 的檔案。
要執行這個 exe 檔案,可以雙擊它。
以下是這個 exe 檔案的使用說明:
程式會在後台執行,並不斷檢查網路連線狀態。
如果連線異常,程式會自動重新撥號。
可以使用 Ctrl+C 來停止程式。
了解了~謝謝..不過ai給的答案常常不能使用或是會出錯.但還是很需要AI.他真的幫了大家很多忙.這個程式碼執行出現錯誤
ping_result = subprocess.Popen(ping_cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode("utf-8")
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa6 in position 0: invalid start byte
這個需求是透過執行檔方式丟給排程管理員,或許不需要python來實現PPPoE重播機制。
以下.bat 的方式在win7/win10都可以使用,應該可以滿足你的需求。
@echo off
Rasdial /disconnect
Rasdial username@hinet.net username@hinet.net password
@pause