Python 实现 macOS 系统署理的设置
设置 SOCKS 署理
在 macOS 系统中,可以通过 networksetup 工具来设置 SOCKS 署理。以下是 Python 实现的方法:
使用 networksetup 设置 SOCKS 署理
- import subprocess
- def set_socks_proxy(server, port):
- """
- 设置 macOS 系统的 SOCKS 代理。
- :param server: 代理服务器地址
- :param port: 代理端口
- """
- try:
- # 设置 SOCKS 代理
- subprocess.run(
- ['networksetup', '-setsocksfirewallproxy', 'Wi-Fi', server, str(port)],
- check=True
- )
- print(f"SOCKS 代理已设置为 {server}:{port}")
- except subprocess.CalledProcessError as e:
- print(f"设置 SOCKS 代理失败: {e}")
- def disable_socks_proxy():
- """
- 禁用 macOS 系统的 SOCKS 代理。
- """
- try:
- # 关闭 SOCKS 代理
- subprocess.run(
- ['networksetup', '-setsocksfirewallproxystate', 'Wi-Fi', 'off'],
- check=True
- )
- print("SOCKS 代理已禁用")
- except subprocess.CalledProcessError as e:
- print(f"禁用 SOCKS 代理失败: {e}")
- if __name__ == "__main__":
- # 设置 SOCKS 代理
- set_socks_proxy('127.0.0.1', 1080)
- # 禁用 SOCKS 代理
- # disable_socks_proxy()
复制代码 参数阐明
- networksetup 是 macOS 用于管理网络设置的下令行工具。
- -setsocksfirewallproxy 用于设置 SOCKS 署理。
- -setsocksfirewallproxystate 用于启用或禁用 SOCKS 署理。
- Wi-Fi 是网络服务名称,可能需要根据实际情况调解(例如 Ethernet)。
检查网络服务名称
在实行脚本前,可以通过以下下令查察可用的网络服务名称:- networksetup -listallnetworkservices
复制代码 找到正确的服务名称(如 Wi-Fi 或 Ethernet),并替换到脚本中。
效果验证
可以通过以下下令验证是否成功设置署理:- networksetup -getsocksfirewallproxy Wi-Fi
复制代码 输出类似以下内容:- Enabled: Yes
- Server: 127.0.0.1
- Port: 1080
- Authenticated Proxy Enabled: 0
复制代码 注意事项
- 权限:某些网络设置可能需要管理员权限。运行脚本时可能需要使用 sudo。
- 自动化工具:确保 Python 版本支持 subprocess.run,并在 macOS 情况中运行。
- 清理:在脚本完成后,如果署理设置不再需要,务必调用 disable_socks_proxy() 清除设置。
设置 HTTP 和 HTTPS 署理
- import subprocess
- def set_web_proxy(server, port):
- """
- 设置 macOS 系统代理。
- :param server: 代理服务器地址
- :param port: 代理端口
- """
- # 设置 HTTP 和 HTTPS 代理
- subprocess.run(['networksetup', '-setwebproxy', 'Wi-Fi', server, str(port)], check=True)
- subprocess.run(['networksetup', '-setsecurewebproxy', 'Wi-Fi', server, str(port)], check=True)
- print(f"HTTP 和 HTTPS 代理设置为 {server}:{port}")
- def disable_web_proxy():
- """
- 禁用 macOS 系统代理。
- """
- # 关闭 HTTP 和 HTTPS 代理
- subprocess.run(['networksetup', '-setwebproxystate', 'Wi-Fi', 'off'], check=True)
- subprocess.run(['networksetup', '-setsecurewebproxystate', 'Wi-Fi', 'off'], check=True)
- print("HTTP 和 HTTPS 代理已禁用")
- if __name__ == "__main__":
- # 设置代理
- set_proxy('127.0.0.1', 1081)
- # 禁用代理
- # disable_web_proxy()
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |