说明
最近发现GitHub图片资源显示不了的问题,今日得闲解决一下,附上解决方案,授人以鱼不如授人以渔。
1. 问题
随便打开一个github网页发现是这样的,图片显示不了,项目说明里面图片都显示不了,影响我学习了!!
浏览器F12打开看了一下,部分请求非正常
初步估计是DNS解析的问题
2.解决问题
打开ipaddress.com,输入以上域名得到真实ip 199.232.96.133
将域名和对应ip配置到系统hosts文件里面
问题修复
3.代码
上面域名需要一个一个复制粘贴获取真实ip,比较繁琐,而且过一段时候后,ip说不定会失效,所以写一段python脚本批量获取ip地址(写得比较简单)。
import re
import requests
def get_ip(domain):
d1 = domain.split(".")
if len(d1) == 2:
url = "https://%s.ipaddress.com" % domain
elif len(d1) > 2:
d2 = ".".join(d1[1:])
url = "https://%s.ipaddress.com/%s" % (d2, domain)
# print("url:" + url)
r = requests.get(url)
ip = None
if r.status_code == 200:
# print(r.text)
result = re.findall(r"<li>(?:[0-9]{1,3}\.){3}[0-9]{1,3}</li>", r.text)
if result:
for r in result:
ip = r.replace("<li>", "").replace("</li>", "")
break
if ip is not None:
print("%s %s" % (ip, domain))
def get_ips(domains):
for domain in domains:
get_ip(domain)
if __name__ == "__main__":
# get_ip("baidu.com")
# get_ip("aaa.baidu.com")
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"]
get_ips(github_domains)
执行结果
3.总结
问题完美解决!!