这里写自定义目录标题
- 一. 基础代码
- 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()
四. 使用方法
- 打开cmd界面
- 输入以下代码确认当前环境是否安装了Python并且socket模块是否可用:
python -c "import socket;print(socket.gethostbyname('google.com'))"
如果系统中已安装Python并且socket模块可用,则将输出谷歌的IP地址。
- 在终端使用以下代码打开文件:
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代码需要读取或写入文件,您需要在命令行中提供文件路径。
4. 打开在相同文件夹中生成的hosts文件,检查并复制到下方Windows目录hosts文件中, 删除txt后缀
C:\Windows\System32\drivers\etc\
5. 打开可查看host的相关软件或cmd中输入代码(本文使用为powertoys),可以注意到 Hosts 已被成功配置
EPIC 下载速度直接涨
五. 问题解决
1. 如何安装Python的socket模块
- 确认你已经正确安装 Python 并已配置环境变量。可以通过在命令行中输入 python -V 来检查 Python 的版本号。
- 如果 Python 安装已损坏或被删除,需要重新安装 Python。
- 如果 socket 模块未正确安装或配置,你可以尝试使用 pip 命令重新安装该模块。打开命令行窗口并输入以下命令:
pip install socket
- 如果上述命令无法正常工作,可以尝试使用以下命令安装 socket 模块:
pip install -U socket
- 如果你没有安装 pip,可以下载 pip 安装脚本(get-pip.py)并在命令行中运行该脚本以安装 pip。可以在以下网址中下载 get-pip.py:
https://bootstrap.pypa.io/get-pip.py
- 下载后,运行以下命令以安装 pip:
python get-pip.py
- 确认是否已经正确安装 pip,可以在命令行中输入以下命令:
pip --version