Python如何实现macOS系统代理的设置

 更新时间:2025年01月23日 08:25:55   作者:飞仔FeiZai  
这篇文章主要为大家详细介绍了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()

到此这篇关于Python如何实现macOS系统代理的设置的文章就介绍到这了,更多相关Python macOS系统代理设置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python贪吃蛇核心功能实现上

    python贪吃蛇核心功能实现上

    我想大家都玩过诺基亚上面的贪吃蛇吧,这篇文章将带你一步步用python语言实现一个snake小游戏,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-09-09
  • python调用接口的4种方式代码实例

    python调用接口的4种方式代码实例

    这篇文章主要介绍了python调用接口的4种方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python catplot函数自定义颜色的方法

    Python catplot函数自定义颜色的方法

    catplot() 函数是 Seaborn 中一个非常有用的函数,它可以绘制分类变量的图形,并可以根据另一个或多个变量进行分组,这篇文章主要介绍了Python catplot函数自定义颜色的方法,需要的朋友可以参考下
    2023-03-03
  • Python通过跳板机访问数据库的方法

    Python通过跳板机访问数据库的方法

    跳板机是一类可作为跳板批量操作的远程设备的网络设备,是系统管理员和运维人员常用的操作平台之一。本文给大家介绍Python通过跳板机访问数据库的方法,感兴趣的朋友跟随小编一起看看吧
    2021-10-10
  • Python实现的视频播放器功能完整示例

    Python实现的视频播放器功能完整示例

    这篇文章主要介绍了Python实现的视频播放器功能,结合完整实例形式分析了Python基于pyglet库实现视频播放功能的相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • Python变量和数据类型和数据类型的转换

    Python变量和数据类型和数据类型的转换

    这篇文章主要介绍了Python变量和数据类型和数据类型的转换,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • python类名和类方法cls修改类变量的值

    python类名和类方法cls修改类变量的值

    这篇文章主要介绍了python类名和类方法cls修改类变量的值,通过类对象是无法修改类变量的值的,本质其实是给类对象新添加 name 和 age 变量,下文更多的相关介绍需要的小伙伴可任意参考一下
    2022-04-04
  • 基于Opencv的图像卡通化实现代码

    基于Opencv的图像卡通化实现代码

    这篇文章主要介绍了基于Opencv的图像卡通化,主要工具是高斯滤波器、细节增强滤波器、双边滤波、拉普拉斯滤波器,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • Python实现农历转换教程详解

    Python实现农历转换教程详解

    农历,是我国现行的传统历法。它是根据月相的变化周期,每一次月相朔望变化为一个月,参考太阳回归年为一年的长度,并加入二十四节气与设置闰月以使平均历年与回归年相适应。本文将用Python实现农历转换,需要的可以参考一下
    2022-03-03
  • Python Des加密解密如何实现软件注册码机器码

    Python Des加密解密如何实现软件注册码机器码

    这篇文章主要介绍了Python Des加密解密如何实现软件注册码机器码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论