IT评测·应用市场-qidao123.com
标题:
Python 实现 macOS 系统署理的设置
[打印本页]
作者:
金歌
时间:
2025-1-22 15:59
标题:
Python 实现 macOS 系统署理的设置
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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4