这是现实世界的程序,它会在您的工作时间内阻止某些分散注意力的网站,例如 Facebook、Youtube 等。
关于程序:我们将在此程序中传递您认为会分散注意力的网站链接,并且您在计算机上工作的时间和程序将阻止这些网站。
程序架构:
- 无论是 Mac、Windows 还是 Linux,每个系统都有主机文件。
Mac 和 Linux 中的主机文件:/etc/hosts
Windows 中的主机文件:
C:\Windows\System32\drivers\etc
- 主机文件的工作:主机是将主机名映射到 IP 地址的操作系统文件。在这个程序中,我们将把网站的主机名映射到我们的本地主机地址。使用Python文件处理操作,我们将在 hosts.txt 中写入主机名,并在您的工作时间后删除这些行。
Mac 中的主机文件:
# Run this script as root
import time
from datetime import datetime as dt
# change hosts path according to your OS
hosts_path = "/etc/hosts"
# localhost's IP
redirect = "127.0.0.1"
# websites That you want to block
website_list =
["www.facebook.com","facebook.com",
"dub119.mail.live.com","www.dub119.mail.live.com",
"www.gmail.com","gmail.com"]
while True:
# time of your work
if dt(dt.now().year, dt.now().month, dt.now().day,8)
< dt.now() < dt(dt.now().year, dt.now().month, dt.now().day,16):
print("Working hours...")
with open(hosts_path, 'r+') as file:
content = file.read()
for website in website_list:
if website in content:
pass
else:
# mapping hostnames to your localhost IP address
file.write(redirect + " " + website + "\n")
else:
with open(hosts_path, 'r+') as file:
content=file.readlines()
file.seek(0)
for line in content:
if not any(website in line for website in website_list):
file.write(line)
# removing hostnmes from host file
file.truncate()
print("Fun hours...")
time.sleep(5)
Windows 用户特别注意: Windows 用户需要创建操作系统主机文件的副本。现在在脚本中提到的hosts_path中提供重复文件的路径。
在 Mac 中调度上述脚本:要在 Mac 中调度上述脚本,您必须以 root 身份在终端中打开 crontab。
- 在终端中写入以下命令:
sudo crontab -e
您的终端应如下所示:
- 现在按“i”进入插入/编辑模式并写入@reboot python_script_path。
- 首先按 esc 退出写入模式并回退到命令模式,现在写入“:wq”,最后按 Enter 键以保存选项卡。
- 重新启动您的系统,看看魔法。
Windows 中的调度:上述脚本的调度有点小技巧,但我将逐步指导您-
- 首先,将脚本的扩展名从“.py”更改为“.pyw”。
- 现在打开任务计划程序。任务调度程序应如下所示:
您可能会看到网站拦截器已经安排好了,因为我已经在我的电脑中安排了我的测试目的。仔细遵循安排的进一步说明,以便在您的计算机中安排网站拦截器。
- 点击“创建任务”。填写您选择的名称并标记“以最高权限运行”。
- 现在转到触发器,选择“启动时”开始任务。
- 转到操作栏并创建一个新操作并提供脚本的路径。
- 转到条件栏并取消标记电源部分。
- 按确定,您可以看到预定的脚本。
- 最后重启你的电脑,看看神奇。
注意:您也可以通过单击运行按钮立即检查。