VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > go语言 >
  • 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()

来源:https://www.cnblogs.com/yuzhihui/p/18686317


相关教程