📅  最后修改于: 2020-05-14 02:32:07             🧑  作者: Mango
这是一个现实世界的程序,在您的工作时间内阻止某些分散注意力的网站,例如Facebook,Youtube等。
关于程序:在此程序中,我们将通过您认为会分散注意力的网站链接,而您使用计算机和程序能够阻止这些网站。
程序架构
1, 每个系统都有hosts文件,无论是Mac,Windows还是Linux。Mac和Linux中的
hosts文件:
/etc/hosts
Windows中的主机文件:
C:\Windows\System32\drivers\etc
2,hosts文件的工作:hosts主机是一个操作系统文件,它将主机名映射到IP地址。在此程序中,我们将网站的主机名映射到我们的本地主机地址。使用Python文件处理操作,我们将在hosts.txt中写入主机名,并在工作时间之后删除行。
Mac中的主机文件:
# 以root身份运行此脚本
import time
from datetime import datetime as dt
# 根据您的操作系统更改主机路径
hosts_path = "/etc/hosts"
# 本地主机的IP
redirect = "127.0.0.1"
# 您要阻止的网站
website_list =
["www.facebook.com","facebook.com",
"dub119.mail.live.com","www.dub119.mail.live.com",
"www.gmail.com","gmail.com"]
while True:
# 工作时间
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:
# 将主机名映射到您的本地主机IP地址
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)
# 从主机文件中删除主机
file.truncate()
print("Fun hours...")
time.sleep(5)
Windows用户的特别说明: Windows用户需要创建OS主机文件的副本。现在,在脚本中提到的hosts_path中提供重复文件的路径。
在Mac中调度上述脚本:在Mac中调度上述脚本,您必须在终端中以root身份打开crontab。
在终端中编写以下命令:
sudo crontab -e
在Windows中:上述脚本的有些技巧: