Hosts是一個(gè)沒有擴(kuò)展名的系統(tǒng)文件,其作用就是將一些常用的網(wǎng)址域名與其對(duì)應(yīng)的IP地址建立一個(gè)關(guān)聯(lián)“數(shù)據(jù)庫”,當(dāng)用戶在瀏覽器中輸入一個(gè)需要登錄的網(wǎng)址時(shí),系統(tǒng)會(huì)首先自動(dòng)從Hosts文件中尋找對(duì)應(yīng)的IP地址,一旦找到,系統(tǒng)會(huì)立即打開對(duì)應(yīng)網(wǎng)頁,如果沒有找到,則系統(tǒng)會(huì)再將網(wǎng)址提交DNS域名解析服務(wù)器進(jìn)行IP地址的解析。
本文介紹一種通過Python3來獲取和更新hosts文件的方法。只適用于Windows系統(tǒng),Linux和Mac系統(tǒng)需要修改LOCAL_PATH的值和刷新DNS緩存調(diào)用的程序。
感謝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()