From f9cfa4b9e356e46069cedf7a7b55f0242f9df621 Mon Sep 17 00:00:00 2001
From: xueweihan <595666367@qq.com>
Date: Tue, 22 Nov 2022 14:13:08 +0800
Subject: [PATCH] update
---
README.md | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++
fetch_ips.py | 46 +++++++------
hosts | 39 ++++++++++-
hosts.json | 1 +
4 files changed, 239 insertions(+), 25 deletions(-)
diff --git a/README.md b/README.md
index e69de29bb..dbe8de184 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1,178 @@
+# GitHub520
+
+
+
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。
兴趣是最好的老师,这里能够帮你找到编程的兴趣!
+
+
+[raw.hellogithub.com](https://raw.hellogithub.com/) 服务器续费了 3 年到 2024.12 共花了:1500+💰
+
+有余粮的朋友[点击扫码赞助](https://cdn.jsdelivr.net/gh/521xueweihan/img_logo@main/logo/receiving_code.png),感谢🙏
+
+## 一、介绍
+对 GitHub 说"爱"太难了:访问慢、图片加载不出来。
+
+*注:* 本项目还处于测试阶段,仅在本机测试通过,如有问题欢迎提 [issues](https://github.com/521xueweihan/GitHub520/issues/new)
+
+---
+
+本项目无需安装任何程序,通过修改本地 hosts 文件,试图解决:
+- GitHub 访问速度慢的问题
+- GitHub 项目中的图片显示不出的问题
+
+花 5 分钟时间,让你"爱"上 GitHub。
+
+## 二、使用方法
+
+### 2.1 复制下面的内容
+```bash
+# GitHub520 Host Start
+140.82.114.25 alive.github.com
+140.82.114.5 api.github.com
+185.199.108.153 assets-cdn.github.com
+185.199.109.133 avatars.githubusercontent.com
+185.199.109.133 avatars0.githubusercontent.com
+185.199.109.133 avatars1.githubusercontent.com
+185.199.109.133 avatars2.githubusercontent.com
+185.199.109.133 avatars3.githubusercontent.com
+185.199.109.133 avatars4.githubusercontent.com
+185.199.109.133 avatars5.githubusercontent.com
+185.199.110.133 camo.githubusercontent.com
+140.82.114.22 central.github.com
+185.199.109.133 cloud.githubusercontent.com
+140.82.113.10 codeload.github.com
+140.82.113.22 collector.github.com
+185.199.109.133 desktop.githubusercontent.com
+185.199.109.133 favicons.githubusercontent.com
+140.82.114.3 gist.github.com
+54.231.236.105 github-cloud.s3.amazonaws.com
+52.217.131.145 github-com.s3.amazonaws.com
+52.217.166.25 github-production-release-asset-2e65be.s3.amazonaws.com
+52.217.140.201 github-production-repository-file-5c1aeb.s3.amazonaws.com
+52.217.72.20 github-production-user-asset-6210df.s3.amazonaws.com
+192.0.66.2 github.blog
+140.82.114.4 github.com
+140.82.114.18 github.community
+185.199.108.154 github.githubassets.com
+151.101.65.194 github.global.ssl.fastly.net
+185.199.111.153 github.io
+185.199.109.133 github.map.fastly.net
+185.199.108.153 githubstatus.com
+140.82.114.26 live.github.com
+185.199.109.133 media.githubusercontent.com
+185.199.109.133 objects.githubusercontent.com
+13.107.42.16 pipelines.actions.githubusercontent.com
+185.199.109.133 raw.githubusercontent.com
+185.199.109.133 user-images.githubusercontent.com
+13.107.213.51 vscode.dev
+
+
+# Update time: 2022-11-22T06:12:56+08:00
+# Update url: https://raw.hellogithub.com/hosts
+# Star me: https://github.com/521xueweihan/GitHub520
+# GitHub520 Host End
+
+```
+
+上面内容会自动定时更新,保证最新有效。数据更新时间:2022-11-22T06:12:56+08:00(内容无变动不会更新)
+
+- 文件:`https://raw.hellogithub.com/hosts`
+- JSON:`https://raw.hellogithub.com/hosts.json`
+
+### 2.1 手动方式
+
+#### 2.1.1 修改 hosts 文件
+hosts 文件在每个系统的位置不一,详情如下:
+- Windows 系统:`C:\Windows\System32\drivers\etc\hosts`
+- Linux 系统:`/etc/hosts`
+- Mac(苹果电脑)系统:`/etc/hosts`
+- Android(安卓)系统:`/system/etc/hosts`
+- iPhone(iOS)系统:`/etc/hosts`
+
+修改方法,把第一步的内容复制到文本末尾:
+
+1. Windows 使用记事本。
+2. Linux、Mac 使用 Root 权限:`sudo vi /etc/hosts`。
+3. iPhone、iPad 须越狱、Android 必须要 root。
+
+#### 2.1.2 激活生效
+大部分情况下是直接生效,如未生效可尝试下面的办法,刷新 DNS:
+
+1. Windows:在 CMD 窗口输入:`ipconfig /flushdns`
+
+2. Linux 命令:`sudo nscd restart`,如报错则须安装:`sudo apt install nscd` 或 `sudo /etc/init.d/nscd restart`
+
+3. Mac 命令:`sudo killall -HUP mDNSResponder`
+
+**Tips:** 上述方法无效可以尝试重启机器。
+
+### 2.2 自动方式
+
+**Tip**:推荐 [SwitchHosts](https://github.com/oldj/SwitchHosts) 工具管理 hosts
+
+以 SwitchHosts 为例,看一下怎么使用的,配置参考下面:
+
+- Title: 随意
+
+- Type: `Remote`
+
+- URL: `https://raw.hellogithub.com/hosts`
+
+- Auto Refresh: 最好选 `1 hour`
+
+如图:
+
+
+
+这样每次 hosts 有更新都能及时进行更新,免去手动更新。
+
+### 2.3 One-liner (适用于类Unix系统)
+
+`sed -i "/# GitHub520 Host Start/Q" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts`
+自动更新`/etc/hosts`文件,可以添加到cron定时执行。使用前确保Github520内容在该文件最后部分。
+
+### 2.4 AdGuard Home 用户(自动方式)
+
+在 **过滤器>DNS 封锁清单>添加阻止列表>添加一个自定义列表**,配置如下:
+
+- 名称: 随意
+
+- URL: `https://raw.hellogithub.com/hosts`(和上面 SwitchHosts 使用的一样)
+
+如图:
+
+
+
+更新间隔在 **设置>常规设置>过滤器更新间隔(设置一小时一次即可)**,记得勾选上 **使用过滤器和 Hosts 文件以拦截指定域名**
+
+
+
+**Tip**:不要添加在 **DNS 允许清单** 内,只能添加在 **DNS 封锁清单** 才管用。另外,AdGuard for Mac、AdGuard for Windows、AdGuard for Android、AdGuard for IOS 等等 **AdGuard 家族软件** 添加方法均类似。
+
+### 2.5 Chrome 插件方式
+
+[FasterHosts](https://github.com/gauseen/faster-hosts) 是个 Chrome 插件,主要原理是拦截浏览器的某些请求,将 `domain` 替换成访问速度较快的那个。hosts 资源来自 [GitHub520](https://github.com/521xueweihan/GitHub520),每 1 小时更新一次。
+
+> 1. 下载 [FasterHosts](https://github.com/gauseen/faster-hosts/archive/master.zip) 然后解压,找到 `extension` 子目录
+> 2. 打开 Chrome,输入: `chrome://extensions/`
+> 3. 打开「开发者模式」
+> 4. 选择「加载已解压的扩展程序」,然后定位到刚才解压的文件夹里面的 `extension` 目录,确定
+> 5. 这就安装好了,关闭「开发者模式」
+
+## 三、效果对比
+之前的样子:
+
+
+
+修改完 hosts 的样子:
+
+
+
+
+## TODO
+- [x] 定时自动更新 hosts 内容
+- [x] hosts 内容无变动不会更新
+- [x] 寻到最优 IP 解析结果
+
+
+## 声明
+
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。
diff --git a/fetch_ips.py b/fetch_ips.py
index eaba3f490..39f7144be 100644
--- a/fetch_ips.py
+++ b/fetch_ips.py
@@ -16,31 +16,31 @@ from pythonping import ping
from requests_html import HTMLSession
from retry import retry
-GITHUB_URLS = [
- 'alive.github.com'
-]
-
# GITHUB_URLS = [
-# 'alive.github.com', 'api.github.com', 'assets-cdn.github.com',
-# 'avatars.githubusercontent.com', 'avatars0.githubusercontent.com',
-# 'avatars1.githubusercontent.com', 'avatars2.githubusercontent.com',
-# 'avatars3.githubusercontent.com', 'avatars4.githubusercontent.com',
-# 'avatars5.githubusercontent.com', 'camo.githubusercontent.com',
-# 'central.github.com', 'cloud.githubusercontent.com', 'codeload.github.com',
-# 'collector.github.com', 'desktop.githubusercontent.com',
-# 'favicons.githubusercontent.com', 'gist.github.com',
-# 'github-cloud.s3.amazonaws.com', 'github-com.s3.amazonaws.com',
-# 'github-production-release-asset-2e65be.s3.amazonaws.com',
-# 'github-production-repository-file-5c1aeb.s3.amazonaws.com',
-# 'github-production-user-asset-6210df.s3.amazonaws.com', 'github.blog',
-# 'github.com', 'github.community', 'github.githubassets.com',
-# 'github.global.ssl.fastly.net', 'github.io', 'github.map.fastly.net',
-# 'githubstatus.com', 'live.github.com', 'media.githubusercontent.com',
-# 'objects.githubusercontent.com', 'pipelines.actions.githubusercontent.com',
-# 'raw.githubusercontent.com', 'user-images.githubusercontent.com',
-# 'vscode.dev'
+# 'alive.github.com'
# ]
+GITHUB_URLS = [
+ 'alive.github.com', 'api.github.com', 'assets-cdn.github.com',
+ 'avatars.githubusercontent.com', 'avatars0.githubusercontent.com',
+ 'avatars1.githubusercontent.com', 'avatars2.githubusercontent.com',
+ 'avatars3.githubusercontent.com', 'avatars4.githubusercontent.com',
+ 'avatars5.githubusercontent.com', 'camo.githubusercontent.com',
+ 'central.github.com', 'cloud.githubusercontent.com', 'codeload.github.com',
+ 'collector.github.com', 'desktop.githubusercontent.com',
+ 'favicons.githubusercontent.com', 'gist.github.com',
+ 'github-cloud.s3.amazonaws.com', 'github-com.s3.amazonaws.com',
+ 'github-production-release-asset-2e65be.s3.amazonaws.com',
+ 'github-production-repository-file-5c1aeb.s3.amazonaws.com',
+ 'github-production-user-asset-6210df.s3.amazonaws.com', 'github.blog',
+ 'github.com', 'github.community', 'github.githubassets.com',
+ 'github.global.ssl.fastly.net', 'github.io', 'github.map.fastly.net',
+ 'githubstatus.com', 'live.github.com', 'media.githubusercontent.com',
+ 'objects.githubusercontent.com', 'pipelines.actions.githubusercontent.com',
+ 'raw.githubusercontent.com', 'user-images.githubusercontent.com',
+ 'vscode.dev'
+]
+
HOSTS_TEMPLATE = """# GitHub520 Host Start
{content}
@@ -66,8 +66,6 @@ def write_file(hosts_content: str, update_time: str) -> bool:
if old_hosts == hosts_content_hosts:
print("host not change")
return False
- else:
- return False
with open(template_path, "r") as temp_fb:
template_str = temp_fb.read()
diff --git a/hosts b/hosts
index 994b0a6bb..2a5c5ce39 100644
--- a/hosts
+++ b/hosts
@@ -1,8 +1,45 @@
# GitHub520 Host Start
140.82.114.25 alive.github.com
+140.82.114.5 api.github.com
+185.199.108.153 assets-cdn.github.com
+185.199.109.133 avatars.githubusercontent.com
+185.199.109.133 avatars0.githubusercontent.com
+185.199.109.133 avatars1.githubusercontent.com
+185.199.109.133 avatars2.githubusercontent.com
+185.199.109.133 avatars3.githubusercontent.com
+185.199.109.133 avatars4.githubusercontent.com
+185.199.109.133 avatars5.githubusercontent.com
+185.199.110.133 camo.githubusercontent.com
+140.82.114.22 central.github.com
+185.199.109.133 cloud.githubusercontent.com
+140.82.113.10 codeload.github.com
+140.82.113.22 collector.github.com
+185.199.109.133 desktop.githubusercontent.com
+185.199.109.133 favicons.githubusercontent.com
+140.82.114.3 gist.github.com
+54.231.236.105 github-cloud.s3.amazonaws.com
+52.217.131.145 github-com.s3.amazonaws.com
+52.217.166.25 github-production-release-asset-2e65be.s3.amazonaws.com
+52.217.140.201 github-production-repository-file-5c1aeb.s3.amazonaws.com
+52.217.72.20 github-production-user-asset-6210df.s3.amazonaws.com
+192.0.66.2 github.blog
+140.82.114.4 github.com
+140.82.114.18 github.community
+185.199.108.154 github.githubassets.com
+151.101.65.194 github.global.ssl.fastly.net
+185.199.111.153 github.io
+185.199.109.133 github.map.fastly.net
+185.199.108.153 githubstatus.com
+140.82.114.26 live.github.com
+185.199.109.133 media.githubusercontent.com
+185.199.109.133 objects.githubusercontent.com
+13.107.42.16 pipelines.actions.githubusercontent.com
+185.199.109.133 raw.githubusercontent.com
+185.199.109.133 user-images.githubusercontent.com
+13.107.213.51 vscode.dev
-# Update time: 2022-11-22T05:53:41+08:00
+# Update time: 2022-11-22T06:12:56+08:00
# Update url: https://raw.hellogithub.com/hosts
# Star me: https://github.com/521xueweihan/GitHub520
# GitHub520 Host End
diff --git a/hosts.json b/hosts.json
index e69de29bb..b63bc082a 100644
--- a/hosts.json
+++ b/hosts.json
@@ -0,0 +1 @@
+[["140.82.114.25", "alive.github.com"], ["140.82.114.5", "api.github.com"], ["185.199.108.153", "assets-cdn.github.com"], ["185.199.109.133", "avatars.githubusercontent.com"], ["185.199.109.133", "avatars0.githubusercontent.com"], ["185.199.109.133", "avatars1.githubusercontent.com"], ["185.199.109.133", "avatars2.githubusercontent.com"], ["185.199.109.133", "avatars3.githubusercontent.com"], ["185.199.109.133", "avatars4.githubusercontent.com"], ["185.199.109.133", "avatars5.githubusercontent.com"], ["185.199.110.133", "camo.githubusercontent.com"], ["140.82.114.22", "central.github.com"], ["185.199.109.133", "cloud.githubusercontent.com"], ["140.82.113.10", "codeload.github.com"], ["140.82.113.22", "collector.github.com"], ["185.199.109.133", "desktop.githubusercontent.com"], ["185.199.109.133", "favicons.githubusercontent.com"], ["140.82.114.3", "gist.github.com"], ["54.231.236.105", "github-cloud.s3.amazonaws.com"], ["52.217.131.145", "github-com.s3.amazonaws.com"], ["52.217.166.25", "github-production-release-asset-2e65be.s3.amazonaws.com"], ["52.217.140.201", "github-production-repository-file-5c1aeb.s3.amazonaws.com"], ["52.217.72.20", "github-production-user-asset-6210df.s3.amazonaws.com"], ["192.0.66.2", "github.blog"], ["140.82.114.4", "github.com"], ["140.82.114.18", "github.community"], ["185.199.108.154", "github.githubassets.com"], ["151.101.65.194", "github.global.ssl.fastly.net"], ["185.199.111.153", "github.io"], ["185.199.109.133", "github.map.fastly.net"], ["185.199.108.153", "githubstatus.com"], ["140.82.114.26", "live.github.com"], ["185.199.109.133", "media.githubusercontent.com"], ["185.199.109.133", "objects.githubusercontent.com"], ["13.107.42.16", "pipelines.actions.githubusercontent.com"], ["185.199.109.133", "raw.githubusercontent.com"], ["185.199.109.133", "user-images.githubusercontent.com"], ["13.107.213.51", "vscode.dev"]]
\ No newline at end of file