github重置ip程序
2022/2/12 9:14:37
本文主要是介绍github重置ip程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
github重置ip程序
github是一个全球最大的一个程序员代码托管服务平台,我们可以把自己的项目放到上面供大家学习与交流,我们也可以在上面找到很多实用有趣的项目,虽然国内开放github的网页浏览,但是那个速度,还得看服务器的脸色行事,经常打不开网页也是常有的事。网上的方法有很多,最主要是通过修改hosts文件,直接绕过DNS解析实现一个快速浏览,因此一起来开发一个github快速重置ip修改hosts文件程序吧。
本质上是调用了requests模块从网上获取github的ip并导入更新hosts文件,而这个网站的数据更新频率很快,最好是每次频繁github时再更新
开发环境
- Python
- pycharm
- requests,ctypes等库
新建一个新的Python项目,并导入所需的包
- _future_
- ctypes
- sys
- requests
- os
调用request模块获取网站数据
url = "https://raw.hellogithub.com/hosts" headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'} response = requests.get(url=url,headers=headers)
提供管理员权限
由于需要修改windows系统文件,需要提供权限,否则会修改失败
# 提供权限 def is_admin(): try: return ctypes.windll.shell32.IsUserAnAdmin() except: return False
把获取到的数据存储进hosts文件
if is_admin(): # 将要运行的代码加到这里 with open("C:/Windows/System32/drivers/etc/hosts", "w") as f: f.write("127.0.0.1 localhost\n") with open("C:/Windows/System32/drivers/etc/hosts", "ab") as f: f.write(response.content) else: if sys.version_info[0] == 3: ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1) else:#in python2.x pass
刷新 DNS 解析缓存。
DOS = "ipconfig /flushdns" dos = os.system(DOS)
完整代码
from __future__ import print_function import ctypes, sys import requests import os url = "https://raw.hellogithub.com/hosts" headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'} response = requests.get(url=url,headers=headers) # 提供权限 def is_admin(): try: return ctypes.windll.shell32.IsUserAnAdmin() except: return False if is_admin(): # 将要运行的代码加到这里 with open("C:/Windows/System32/drivers/etc/hosts", "w") as f: f.write("127.0.0.1 localhost\n") with open("C:/Windows/System32/drivers/etc/hosts", "ab") as f: f.write(response.content) else: if sys.version_info[0] == 3: ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1) else:#in python2.x pass # ctypes.windll.shell32.ShellExecuteW(None, u"runas", unicode(sys.executable), unicode(__file__), None, 1) # 若需要刷新 DNS 解析缓存,cmd中执行:ipconfig /flushdns print("***********************************") DOS = "ipconfig /flushdns" dos = os.system(DOS) print("***********************************") print("github的IP地址更新完成") if dos == 0: print("已成功刷新 DNS 解析缓存。") else: print("刷新 DNS 解析缓存失败!")
最后总结一下,本次用到的一个思路还是很简单的,主要用到一个获取数据和获取权限写入文件,最重要的是要有思路!!!
这篇关于github重置ip程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?