自动禁用 WiFi 的程序

自动禁用 WiFi 的程序

我需要专家的帮助。凌晨 00 点到早上 6 点之间我的 WiFi 是无限的,这是我开始下载的时间。我通常会在这段时间从种子和 ISO 文件下载电影并进行测试。我的问题是如何在早上 6 点停止 WiFi 以便关闭所有内容?因为有些文件占用 20 GB,一个晚上下载不完,我必须在 6 点停止。在这种情况下我该怎么办?我应该编写一个 Python 程序还是应该在设置中更改某些内容?

我真的需要帮助,如果有人知道我可以下载的程序,可以帮我完成所有工作,请告诉我。顺便说一句,我无法从网页进入我的 tplink 路由器,所以我应该尝试找到一个应用程序,谢谢。

答案1

这是一个简单的 Python 程序,用于在 00:00 打开 wifi,然后在 06:00 关闭:

import os
import time
from datetime import datetime
import sys

while(1):
    now = datetime.now()
    if now.hour == 0:
        print("Starting Wifi...\n")
        os.system("nmcli radio wifi on")
    if now.hour == 6:
        print("Turning Wifi off...\n")
        os.system("nmcli radio wifi off")
        sys.exit()
    time.sleep(60)

只需将其保存为.py文件,然后将其添加到 Linux 系统的启动服务中,这样它在计算机启动时就会在后台启动并持续运行。该脚本将在 06:00 ± 1 分钟后自动终止关闭 wifi。

注意:脚本每 1 分钟检查一次当前小时数,因此 Wifi 连接跳闸或重启的实际时间可能会延迟 1 分钟,如果您希望它检查得更快,您可以将其更改为time.sleep(60)time.sleep(30)30 秒检查一次。


if now.hour == 5 and now.minute >= 50:更新:(要在 05:50 关闭),请使用以下命令,您可以在下面的代码行中根据自己的喜好调整小时和秒数:

import os
import time
from datetime import datetime
import sys

while(1):
    now = datetime.now()
    if now.hour == 0:
        print("Starting Wifi...\n")
        os.system("nmcli radio wifi on")
    if now.hour == 5 and now.minute >= 50:
        print("Turning Wifi off...\n")
        os.system("nmcli radio wifi off")
        sys.exit()
    time.sleep(60)

将脚本添加到启动应用程序

  1. which通过终端中的命令检查您的 Python 版本,对于 Python2 使用: which python2,对于 python3 使用which python3。复制 python 的位置。 终端截图
  2. 在 Ubuntu 的应用程序列表中,查找启动应用程序并运行它。
  3. 选择“添加”添加新应用程序
  4. 为启动服务命名,然后输入要执行的命令。对我来说,由于我的 Python 版本是 3,位于 ,/usr/local/bin/python3python 程序位于/Desktop/wifi.py,因此我在命令中使用以下内容:/usr/local/bin/python3 /Desktop/wifi.py
  5. 接下来只需添加服务。 在此处输入图片描述

更新:仅显示一次消息的程序。新增功能:如果在程序预期打开的时间内意外关闭 wifi,程序将自动重新启动 wifi。因此,程序还将检查互联网连接并防止 wifi 在打开和关闭时间之间关闭。

import os
import time
from datetime import datetime
import sys
import urllib.request

def connect(host='http://google.com'):
    try:
        urllib.request.urlopen(host) #Python 3.x
        return 1
    except:
        return 0
preWifi = 0
while(1):
    now = datetime.now()
    wifi = connect()
    if wifi == 1 and wifi != preWifi:
        print('Wifi On.')
    if now.hour == 0 and wifi != 1:
        print("Starting Wifi...\t | Time", now, "\n")
        os.system("nmcli radio wifi on")
        print("Reconnecting...please stand by.\t | Time =", now, "\n")
        while(not connect()):
            time.sleep(0.5)
    if now.hour == 5 and now.minute == 50 and wifi == 1:
        print("Turning Wifi off...\t | Time", now, "\n")
        os.system("nmcli radio wifi off")
        sys.exit()
    preWifi = wifi
    time.sleep(1)

希望一切顺利!:D

要完全关闭消息,只需使用.pyw扩展名而不是 来保存程序.py

答案2

最简单的方法是使用 cron 作业。

首先,使用 识别您的无线设备的名称ls /sys/class/net。您将看到类似以下内容的内容:

eth0   lo   wlp3s0`

然后输入crontab -e打开 crontab,并添加以下行:

59 05 * * * ifdown wlp3s0

这将在凌晨 5:59 关闭 WiFi。

相关内容