Python更新hosts

1168 ワード

Hostsは拡張子のないシステムファイルで、その役割はいくつかのよく使われるウェブサイトのドメイン名とその対応するIPアドレスを1つの関連する“データベース”を創立することで、ユーザーがブラウザの中で1つの登録する必要があるウェブサイトを入力する時、システムはまず自動的にHostsファイルの中から対応するIPアドレスを探して、いったん探し当てると、システムはすぐに対応するウェブページを開けて、もし探し当てていないならば、DNSドメイン名解析サーバにアドレスを送信してIPアドレスの解析を行う.ここでは、Python 3による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()