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 解析缓存失败!")

最后总结一下,本次用到的一个思路还是很简单的,主要用到一个获取数据和获取权限写入文件,最重要的是要有思路!!!


__EOF__

本文作者小鹿同学
本文链接https://www.cnblogs.com/exiaolu/p/15885389.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   进击的小鹿  阅读(100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示