IT评测·应用市场-qidao123.com
标题:
【大前端】【Android】whistle配置Android手机代理脚本
[打印本页]
作者:
圆咕噜咕噜
时间:
2025-3-16 07:12
标题:
【大前端】【Android】whistle配置Android手机代理脚本
Android配置whistle手机代理,为了避免频繁自己手动去WiFi代理输入私有IP地址,专程建了一个Python脚本来帮助一键配置好代理,解除代理。
原始配置流程手续:
必要打开http://127.0.0.1:8899/ 检察whistle的IP和端标语
必要打开手机WiFi代理,输入上述的IP和端标语
假如清除代理,必要再次打开WiFi代理,取消代理
现在的配置流程手续:
直接输入下述命令即可设置代理
python proxy.py set
复制代码
直接输入下述命令即可清除代理
python proxy.py clear
复制代码
proxy.py文件代码如下,紧张核心也就是用Python模仿发送adb命令去控制代理。省掉了自己打开WiFi输入IP地址的过程。
import subprocess
import re
import sys
def get_whistle_ip_port():
try:
# 获取 whistle 的状态输出
result = subprocess.run(['w2', 'status'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output = result.stdout.decode('utf-8').strip()
# 打印原始输出以便调试
print("Whistle output:", output)
# 使用正则表达式从输出中提取非127.0.0.1的IP地址和端口号
ip_match = re.search(r'http://(?!127\.0\.0\.1)([\d.]+):(\d+)/', output)
if ip_match:
ip = ip_match.group(1)
port = ip_match.group(2)
return ip, port
else:
print("Could not parse external IP and port from whistle output.")
except Exception as e:
print(f"Failed to get whistle config: {e}")
return None, None
def set_android_wifi_proxy(ip, port):
try:
# 通过ADB连接设备并设置WiFi代理
subprocess.run(['adb', 'shell', 'settings', 'put', 'global', 'http_proxy', f"{ip}:{port}"])
print(f"Proxy set to {ip}:{port} successfully.")
except Exception as e:
print(f"Failed to set proxy on Android device: {e}")
def clear_android_wifi_proxy():
try:
# 通过ADB连接设备并清除WiFi代理设置
subprocess.run(['adb', 'shell', 'settings', 'put', 'global', 'http_proxy', ':0'])
print("Proxy cleared successfully.")
except Exception as e:
print(f"Failed to clear proxy on Android device: {e}")
def main(action):
if action == 'set':
ip, port = get_whistle_ip_port()
if ip and port:
set_android_wifi_proxy(ip, port)
else:
print("Could not retrieve whistle IP and port.")
elif action == 'clear':
clear_android_wifi_proxy()
else:
print("Invalid action. Use 'set' to set proxy or 'clear' to clear proxy.")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python script.py [set|clear]")
else:
main(sys.argv[1])
复制代码
python proxy.py set
复制代码
运行之后,如下所示:
python proxy.py clear
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4