Hosts是一个没有扩展名的系统文件,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
本文介绍一种通过Python3来获取和更新hosts文件的方法。只适用于Windows系统,Linux和Mac系统需要修改LOCAL_PATH
的值和刷新DNS缓存调用的程序。
感谢racaljk提供的Google Hosts文件
import urllib.request
import os
import shutil
HOSTS_URL = 'https://raw.githubusercontent.com/racaljk/hosts/master/hosts'
LOCAL_PATH = r'C:\Windows\System32\drivers\etc\hosts'
def main():
'''Main Function'''
# Download hosts file
urllib.request.urlretrieve(HOSTS_URL, 'hosts')
# Backup old hosts file
if(os.path.exists(LOCAL_PATH + '.bak')):
os.remove(LOCAL_PATH)
else:
shutil.copyfile(LOCAL_PATH, LOCAL_PATH + '.bak')
# Move new file to system
shutil.move('hosts', LOCAL_PATH)
# Update dns cache
os.system('ipconfig /flushdns')
if __name__ == '__main__':
main()