Python更新hosts

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()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能...
    一直在努力hard阅读 4,708评论 3 19
  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 2,995评论 0 7
  • 最近,终于要把《WEB请求处理系列》提上日程了,一直答应小伙伴们给分享一套完整的WEB请求处理流程:从浏览器、Ng...
    七寸知架构阅读 31,850评论 27 253
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,650评论 2 56