├── requirements.txt ├── locker.py ├── README.md └── warp-HKG.py /requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | pywin32 3 | pyuac 4 | ping3 5 | -------------------------------------------------------------------------------- /locker.py: -------------------------------------------------------------------------------- 1 | # coding = uft-8 2 | import os 3 | 4 | import pyuac 5 | 6 | path1 = "C:\ProgramData\Cloudflare\settings.json" 7 | path2 = "C:\ProgramData\Cloudflare\conf.json" 8 | path3 = "C:\ProgramData\Cloudflare\.warp_dns.lock" # 连接warp时生成 9 | 10 | def getUAC(): 11 | if __name__ == "__main__": 12 | if not pyuac.isUserAdmin(): 13 | pyuac.runAsAdmin() 14 | exit() 15 | 16 | 17 | def unlock(): 18 | os.system('echo y|cacls ' + path1 + ' /t /p everyone:f > nul') 19 | os.system('echo y|cacls ' + path2 + ' /t /p everyone:f > nul') 20 | os.system('echo y|cacls ' + path3 + ' /t /p everyone:f > nul') 21 | 22 | def lock(): 23 | os.system('echo y|cacls ' + path1 + ' /t /p everyone:r > nul') 24 | os.system('echo y|cacls ' + path2 + ' /t /p everyone:r > nul') 25 | os.system('echo y|cacls ' + path3 + ' /t /p everyone:r > nul') 26 | 27 | def main(): 28 | getUAC() 29 | print("# https://github.com/Windla/WARP-PLUS-HKG/issues/3\n" 30 | "# 利用'安全选项卡'功能控制json文件的权限\n" 31 | "# 该issue暂时无法实现锁定HKG(安全选项卡实现)\n") 32 | code = int(input("请输入对应数字 unlock:0 lock:1\n")) 33 | if code == 0: 34 | unlock() 35 | else: 36 | lock() 37 | 38 | while True: 39 | main() 40 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WARP-PLUS-HKG 2 | 3 | > 刷新Cloudflare WARP的主机托管中心直到为HKG(香港), 以换取低延时warp+或warp(已废弃) 4 | 5 | ## 必读(新) 6 | > 感觉不如`warp-yxip`,请自行搜索。 7 | 8 | > 此项目脚本不推荐使用,无需继续阅读,请使用`warp-yxip`代替。 9 | 10 | > 如果你执意要用此项目脚本,请继续阅读,并做好一无所获的心理准备。 11 | 12 | ## 必读(旧) 13 | 近期反馈证实HKG并不是那么容易刷到的, 有些人刷了一晚上都没成功, 需要做好失败的心里准备. 14 | 15 | 省流: WARP必须赏脸给你来一个HKG的链接才有可能成功(详见 Q&A 1. 刷不到HKG?) 16 | 17 | > 截止至2023年7月22日, 该脚本在warp与warp+测试中仍然可用 18 | 19 | > `locker.py` 解锁 锁定配置文件, 但以目前来看, 似乎不能锁定HKG?(重启软件下测试) 20 | 21 | ## 注意 22 | 0. 仅适用Windows 23 | 1. 臭打游戏的须注意, 游戏流量不一定走warp 24 | 建议食用 ss + warp 代理模式(未测试,有问题issue提) 25 | 2. 更新了超时设定 26 | 27 | ## Q&A 28 | 1. 刷不到HKG?: 29 | > 四舍五入等于玄学 | 完全看你自己能不能连到(只要成功一次就行,但是有概率掉回非HKG) 30 | 31 | > 请尝试在WARP软件设置中 `重置加密密钥` (刷新账户) 或者 `重置所有设置` (切换到warp) 32 | 33 | 2. 网络质量: 34 | > 具体看cf&运营商抽不抽风 35 | 36 | 3. 掉HKG: 37 | > 重刷就行(有可能是你的网络与HKG连接不好掉的) 38 | 39 | ## 下载 40 | [Clone](https://github.com/Windla/WARP-PLUS-HKG/archive/refs/heads/main.zip) 41 | 42 | ## 安装 43 | 44 | ``` 45 | pip install -r requirements.txt 46 | ``` 47 | 48 | or 49 | 50 | ``` 51 | pip install requests 52 | pip install pywin32 53 | pip install pyuac 54 | pip install ping3 55 | ``` 56 | 57 | ## 使用 58 | 需要`Python` [下载](https://python.org/) | 安装`Python`后双击运行即可 59 | 60 | ## 关于UAC 61 | UAC是为了开关`Cloudflare WARP`服务使用, 无其他用处! 62 | 63 | ## Star! 64 | 65 | [![Stargazers over time](https://starchart.cc/Windla/WARP-PLUS-HKG.svg)](https://starchart.cc/Windla/WARP-PLUS-HKG) 66 | -------------------------------------------------------------------------------- /warp-HKG.py: -------------------------------------------------------------------------------- 1 | # coding = uft-8 2 | import os 3 | import time 4 | 5 | import pyuac 6 | import requests 7 | import win32api 8 | import win32serviceutil 9 | from ping3 import ping 10 | 11 | 12 | # If your want to other,please change this. | 想刷啥就改啥 13 | colo = "HKG" 14 | # Set the overtime time | 设置超时时间 15 | overtime = 5 16 | # Please set your warp path. | 填入官方WARP软件安装路径 17 | WARP_path = r"C:\Program Files\Cloudflare\Cloudflare WARP\Cloudflare WARP.exe" 18 | # Set the Ping List | 设置Ping网站清单 19 | web_list = ["google.com", "baidu.com"] 20 | 21 | warp = "plus" 22 | 23 | 24 | def check_uac(): 25 | if __name__ == "__main__": 26 | if not pyuac.isUserAdmin(): 27 | pyuac.runAsAdmin() 28 | exit() 29 | 30 | 31 | def ping_test(web): 32 | try: 33 | web_ping = int(ping(str(web)) * 1000) 34 | return web_ping 35 | except TypeError: 36 | return "overtime" 37 | 38 | 39 | def main(): 40 | win32api.ShellExecute(0, 'open', WARP_path, '', '', 1) 41 | os.system("title WARP-PLUS-HKG") 42 | x = 0 43 | os.system('cls') 44 | print("") 45 | print(" WARP-PLUS-HKG (script)") 46 | print("") 47 | print("[info] 版本: v1.1.1") 48 | print("[info] 项目: https://github.com/Windla/WARP-PLUS-HKG") 49 | print("[info] 正在等待Cloudflare WARP启动") 50 | time.sleep(5) 51 | 52 | while True: 53 | os.system("cls") 54 | print("" 55 | " WARP-PLUS-HKG (script)" 56 | "") 57 | x = x + 1 58 | print(f"[info] 第{x}次连接 1.1.1.1 trace") 59 | # trace = str("") 60 | try: 61 | trace = requests.get("https://1.1.1.1/cdn-cgi/trace", timeout=overtime).text 62 | except requests.exceptions.RequestException: # 蚌埠住了 63 | print("[warn] 与trace连接超时") 64 | trace = str("") # 双保险(?) 65 | if trace.find(warp) == -1: 66 | print("[info] WARP+: no") 67 | else: 68 | print("[info] WARP+: yes") 69 | if trace.find(colo) == -1: 70 | print("[info] isHKG: no") 71 | if x == 1: 72 | check_uac() 73 | try: 74 | win32serviceutil.RestartService("Cloudflare WARP") 75 | finally: 76 | print("[info] 重启Cloudflare WARP服务中") 77 | time.sleep(5) 78 | else: 79 | print("[info] isHKG: yes") 80 | break 81 | 82 | # End 83 | print("[info]-------------------- 连接", colo, "成功! --------------------") 84 | for web in web_list: 85 | web_ping = ping_test(web) 86 | print(f"[info] Ping {web}: ", web_ping, "ms") 87 | print("[info]--------------------------------------------------------") 88 | print("[info] 3s后窗口将自动关闭") 89 | time.sleep(3) 90 | exit() 91 | 92 | 93 | if __name__ == "__main__": 94 | main() 95 | --------------------------------------------------------------------------------