这里写自定义目录标题

  • 一. 基础代码
  • 1.基础代码
  • 2. 可扩展部分代码
  • 二. 域名表
  • 1. GitHub域名表
  • 2. EPIC域名表
  • 三. 完整代码(附EPIC与GitHub域名)
  • 四. 使用方法
  • 五. 问题解决
  • 1. 如何安装Python的socket模块


一. 基础代码

1.基础代码

import socket

# 清空文本
def empty_textfile():
    with open('hosts.txt', 'w') as f:
        f.write('')

# 生成并写入host文件,domainName是生成后范围内的名字,domains是域名数组
def output_hosts(domainName, domains):
    with open('hosts.txt', 'a') as f:
        f.write('\n********************************************\n')
        f.write(f'# {domainName} Start\n')
        for domain in domains:
            print(domain, end='\t')
            try:
                ip = socket.gethostbyname(domain)
                print(ip)
                f.write(f'{ip} {domain}\n')
            except socket.gaierror as e:
                print(f'Unable to resolve {domain}: {e}')
                print('Skipping...')
                f.write(f'# Unable to resolve {domain}: {e}\n')
        f.write(f'# {domainName} End\n')
        f.write('********************************************\n')

# 定义域名数组,该函数可以无限扩展
def get_domains():
    
    # 定义域名数组
    数组名称 = [
    'baidu.com',
    'google.com',
    'bing.com'
    ]
    # 执行域名生成函数
    output_hosts('生成名', 数组名称)

    # Defines an array of domain names
    domains = [
    'baidu.com',
    'google.com',
    'bing.com'
    ]
    # Execute the domain name generation function
    output_hosts('domainName', domains)


    
# 该函数需要保持在最后一行
if __name__ == '__main__':
    empty_textfile()
    get_domains()

2. 可扩展部分代码

# 定义域名数组,该函数可以无限扩展
def get_domains():
    
    # 定义域名数组
    数组名称 = [
    'baidu.com',
    'google.com',
    'bing.com'
    ]
    # 执行域名生成函数
    output_hosts('生成名', 数组名称)

    # Defines an array of domain names
    domains = [
    'baidu.com',
    'google.com',
    'bing.com'
    ]
    # Execute the domain name generation function
    output_hosts('domainName', domains)

二. 域名表

1. GitHub域名表

# GitHub
    github_domains = [
        'github.com',
        'gist.github.com',
        'assets-cdn.github.com',
        'raw.githubusercontent.com',
        'gist.githubusercontent.com',
        'cloud.githubusercontent.com',
        'camo.githubusercontent.com',
        'avatars0.githubusercontent.com',
        'avatars1.githubusercontent.com',
        'avatars2.githubusercontent.com',
        'avatars3.githubusercontent.com',
        'avatars4.githubusercontent.com',
        'avatars5.githubusercontent.com',
        'avatars6.githubusercontent.com',
        'avatars7.githubusercontent.com',
        'avatars8.githubusercontent.com',
        'avatars.githubusercontent.com',
        'github.githubassets.com',
        'user-images.githubusercontent.com',
        'codeload.github.com',
        'favicons.githubusercontent.com',
        'api.github.com'
        ]
    output_hosts('GitHub', github_domains)

2. EPIC域名表

其实大部分都没用,跑不通的删掉就行

# Epic
    epic_domains = [
        'epicgames.com',
        'unrealengine.com',
        'accounts.epicgames.com',
        'fortnite.com',
        'cdn1.epicgames.com',
        'cdn2.epicgames.com',
        'cdn3.epicgames.com',
        'cdn4.epicgames.com',
        'cdn5.epicgames.com',
        'cdn6.epicgames.com',
        'cdn7.epicgames.com',
        'cdn8.epicgames.com',
        'static-assets-prod.epicgames.com',
        'account-public-service-prod03.ol.epicgames.com',
        'launcher-public-service-prod06.ol.epicgames.com',
        'catalog-public-service-prod06.ol.epicgames.com',
        'download.epicgames.com',
        'download2.epicgames.com',
        'download3.epicgames.com',
        'download4.epicgames.com',
        'download5.epicgames.com',
        'download6.epicgames.com',
        'download7.epicgames.com',
        'download8.epicgames.com',
        'download9.epicgames.com',
        'prod-marketplaceeditor.epicgames.com',
        'tags-public-service-live.ol.epicgames.com',
        'tags-public-service-live.ol.epicgames.com',
        'ufesharedservices-public-service-prod.ol.epicgames.com',
        'us-east-1.epicgames.com',
        'us-east-2.epicgames.com',
        'us-west-1.epicgames.com',
        'us-west-2.epicgames.com'
    ]
    output_hosts('Epic', epic_domains)

三. 完整代码(附EPIC与GitHub域名)

该部分为完整代码,可直接复制使用

import socket

# 清空文本
def empty_textfile():
    with open('hosts.txt', 'w') as f:
        f.write('')

# 生成并写入host文件,domainName是生成后范围内的名字,domains是域名数组
def output_hosts(domainName, domains):
    with open('hosts.txt', 'a') as f:
        f.write('\n********************************************\n')
        f.write(f'# {domainName} Start\n')
        for domain in domains:
            print(domain, end='\t')
            try:
                ip = socket.gethostbyname(domain)
                print(ip)
                f.write(f'{ip} {domain}\n')
            except socket.gaierror as e:
                print(f'Unable to resolve {domain}: {e}')
                print('Skipping...')
                f.write(f'# Unable to resolve {domain}: {e}\n')
        f.write(f'# {domainName} End\n')
        f.write('********************************************\n')

# 定义域名数组,该函数可以无限扩展
def get_domains():
    
        # GitHub
    github_domains = [
        'github.com',
        'gist.github.com',
        'assets-cdn.github.com',
        'raw.githubusercontent.com',
        'gist.githubusercontent.com',
        'cloud.githubusercontent.com',
        'camo.githubusercontent.com',
        'avatars0.githubusercontent.com',
        'avatars1.githubusercontent.com',
        'avatars2.githubusercontent.com',
        'avatars3.githubusercontent.com',
        'avatars4.githubusercontent.com',
        'avatars5.githubusercontent.com',
        'avatars6.githubusercontent.com',
        'avatars7.githubusercontent.com',
        'avatars8.githubusercontent.com',
        'avatars.githubusercontent.com',
        'github.githubassets.com',
        'user-images.githubusercontent.com',
        'codeload.github.com',
        'favicons.githubusercontent.com',
        'api.github.com'
        ]
    output_hosts('GitHub', github_domains)

    # Epic
    epic_domains = [
        'epicgames.com',
        'cdn1.epicgames.com',
        'cdn2.epicgames.com',
        'cdn3.epicgames.com',
        'cdn4.epicgames.com',
        'cdn5.epicgames.com',
        'cdn6.epicgames.com',
        'cdn7.epicgames.com',
        'cdn8.epicgames.com',
        'static-assets-prod.epicgames.com',
        'account-public-service-prod03.ol.epicgames.com',
        'launcher-public-service-prod06.ol.epicgames.com',
        'catalog-public-service-prod06.ol.epicgames.com',
        'download.epicgames.com',
        'download2.epicgames.com',
        'download3.epicgames.com',
        'download4.epicgames.com',
        'download5.epicgames.com',
        'download6.epicgames.com',
        'download7.epicgames.com',
        'download8.epicgames.com',
        'download9.epicgames.com',
        'prod-marketplaceeditor.epicgames.com',
        'tags-public-service-live.ol.epicgames.com',
        'tags-public-service-live.ol.epicgames.com',
        'ufesharedservices-public-service-prod.ol.epicgames.com',
        'us-east-1.epicgames.com',
        'us-east-2.epicgames.com',
        'us-west-1.epicgames.com',
        'us-west-2.epicgames.com'
    ]
    output_hosts('Epic', epic_domains)

# 该函数需要保持在最后一行
if __name__ == '__main__':
    empty_textfile()
    get_domains()

四. 使用方法

  1. 打开cmd界面
  2. 输入以下代码确认当前环境是否安装了Python并且socket模块是否可用:
python -c "import socket;print(socket.gethostbyname('google.com'))"

如果系统中已安装Python并且socket模块可用,则将输出谷歌的IP地址。

python 修改程序的host映射 python hosts_开发语言

  1. 在终端使用以下代码打开文件:
python your_file.py

其中,“your_file.py” 是您要运行的Python文件的名称。在运行命令之前,请确保您已经安装了Python并且在环境变量中配置了Python的路径。如果您没有配置Python的路径,则需要使用完整的Python路径来运行文件。例如,如果您在Windows上安装了Python,并且安装在默认路径(C:\PythonXX),则运行以下命令:

C:\PythonXX\python.exe your_file.py

运行命令后,Python解释器将执行您的Python代码,并将输出打印到终端或命令提示符窗口中。请注意,如果您的Python代码需要读取或写入文件,您需要在命令行中提供文件路径。

python 修改程序的host映射 python hosts_python 修改程序的host映射_02

python 修改程序的host映射 python hosts_python_03


4. 打开在相同文件夹中生成的hosts文件,检查并复制到下方Windows目录hosts文件中, 删除txt后缀

C:\Windows\System32\drivers\etc\

python 修改程序的host映射 python hosts_Python_04


5. 打开可查看host的相关软件或cmd中输入代码(本文使用为powertoys),可以注意到 Hosts 已被成功配置

python 修改程序的host映射 python hosts_github_05


EPIC 下载速度直接涨

python 修改程序的host映射 python hosts_开发语言_06

五. 问题解决

1. 如何安装Python的socket模块

  1. 确认你已经正确安装 Python 并已配置环境变量。可以通过在命令行中输入 python -V 来检查 Python 的版本号。
  2. 如果 Python 安装已损坏或被删除,需要重新安装 Python。
  3. 如果 socket 模块未正确安装或配置,你可以尝试使用 pip 命令重新安装该模块。打开命令行窗口并输入以下命令:
pip install socket
  1. 如果上述命令无法正常工作,可以尝试使用以下命令安装 socket 模块:
pip install -U socket
  1. 如果你没有安装 pip,可以下载 pip 安装脚本(get-pip.py)并在命令行中运行该脚本以安装 pip。可以在以下网址中下载 get-pip.py:
https://bootstrap.pypa.io/get-pip.py
  1. 下载后,运行以下命令以安装 pip:
python get-pip.py
  1. 确认是否已经正确安装 pip,可以在命令行中输入以下命令:
pip --version