Python更新hosts

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()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • DNS(Domain Name System,域名系統(tǒng)),因特網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫,能...
    一直在努力hard閱讀 4,805評(píng)論 3 19
  • 1. 概述 在網(wǎng)絡(luò)環(huán)境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對(duì)應(yīng)服務(wù)器獲取相應(yīng)的...
    ghbsunny閱讀 3,405評(píng)論 0 7
  • 最近,終于要把《WEB請求處理系列》提上日程了,一直答應(yīng)小伙伴們給分享一套完整的WEB請求處理流程:從瀏覽器、Ng...
    七寸知架構(gòu)閱讀 32,520評(píng)論 27 253
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評(píng)論 19 139
  • 名詞延伸 通俗的說,域名就相當(dāng)于一個(gè)家庭的門牌號(hào)碼,別人通過這個(gè)號(hào)碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,810評(píng)論 2 56

友情鏈接更多精彩內(nèi)容