Python如何實(shí)現(xiàn)macOS系統(tǒng)代理的設(shè)置
設(shè)置 SOCKS 代理
在 macOS 系統(tǒng)中,可以通過 networksetup 工具來設(shè)置 SOCKS 代理。以下是 Python 實(shí)現(xiàn)的方法:
使用 networksetup 設(shè)置 SOCKS 代理
import subprocess
def set_socks_proxy(server, port):
"""
設(shè)置 macOS 系統(tǒng)的 SOCKS 代理。
:param server: 代理服務(wù)器地址
:param port: 代理端口
"""
try:
# 設(shè)置 SOCKS 代理
subprocess.run(
['networksetup', '-setsocksfirewallproxy', 'Wi-Fi', server, str(port)],
check=True
)
print(f"SOCKS 代理已設(shè)置為 {server}:{port}")
except subprocess.CalledProcessError as e:
print(f"設(shè)置 SOCKS 代理失敗: {e}")
def disable_socks_proxy():
"""
禁用 macOS 系統(tǒng)的 SOCKS 代理。
"""
try:
# 關(guān)閉 SOCKS 代理
subprocess.run(
['networksetup', '-setsocksfirewallproxystate', 'Wi-Fi', 'off'],
check=True
)
print("SOCKS 代理已禁用")
except subprocess.CalledProcessError as e:
print(f"禁用 SOCKS 代理失敗: {e}")
if __name__ == "__main__":
# 設(shè)置 SOCKS 代理
set_socks_proxy('127.0.0.1', 1080)
# 禁用 SOCKS 代理
# disable_socks_proxy()
參數(shù)說明
networksetup 是 macOS 用于管理網(wǎng)絡(luò)設(shè)置的命令行工具。
-setsocksfirewallproxy 用于配置 SOCKS 代理。
-setsocksfirewallproxystate 用于啟用或禁用 SOCKS 代理。
Wi-Fi 是網(wǎng)絡(luò)服務(wù)名稱,可能需要根據(jù)實(shí)際情況調(diào)整(例如 Ethernet)。
檢查網(wǎng)絡(luò)服務(wù)名稱
在執(zhí)行腳本前,可以通過以下命令查看可用的網(wǎng)絡(luò)服務(wù)名稱:
networksetup -listallnetworkservices
找到正確的服務(wù)名稱(如 Wi-Fi 或 Ethernet),并替換到腳本中。
結(jié)果驗(yàn)證
可以通過以下命令驗(yàn)證是否成功設(shè)置代理:
networksetup -getsocksfirewallproxy Wi-Fi
輸出類似以下內(nèi)容:
Enabled: Yes
Server: 127.0.0.1
Port: 1080
Authenticated Proxy Enabled: 0
注意事項(xiàng)
權(quán)限:某些網(wǎng)絡(luò)設(shè)置可能需要管理員權(quán)限。運(yùn)行腳本時(shí)可能需要使用 sudo。
自動(dòng)化工具:確保 Python 版本支持 subprocess.run,并在 macOS 環(huán)境中運(yùn)行。
清理:在腳本完成后,如果代理設(shè)置不再需要,務(wù)必調(diào)用 disable_socks_proxy() 清除設(shè)置。
設(shè)置 HTTP 和 HTTPS 代理
import subprocess
def set_web_proxy(server, port):
"""
設(shè)置 macOS 系統(tǒng)代理。
:param server: 代理服務(wù)器地址
:param port: 代理端口
"""
# 設(shè)置 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 代理設(shè)置為 {server}:{port}")
def disable_web_proxy():
"""
禁用 macOS 系統(tǒng)代理。
"""
# 關(guān)閉 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__":
# 設(shè)置代理
set_proxy('127.0.0.1', 1081)
# 禁用代理
# disable_web_proxy()到此這篇關(guān)于Python如何實(shí)現(xiàn)macOS系統(tǒng)代理的設(shè)置的文章就介紹到這了,更多相關(guān)Python macOS系統(tǒng)代理設(shè)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python多方式分支switch?case實(shí)現(xiàn)舉例詳解
在許多編程語言(如?C、Java)中,switch-case是處理多分支條件的常用語法,這篇文章主要介紹了Python多方式分支switch?case實(shí)現(xiàn)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-06-06
python 操作sqlite數(shù)據(jù)庫的方法
sqlite的官網(wǎng) sqlite.org/index.html SQLite 作為一個(gè)SQL數(shù)據(jù)庫引擎,是由C語言實(shí)現(xiàn)的,又小又快,具有高可靠性且功能齊全。 作為嵌入式數(shù)據(jù)庫,在移動(dòng)設(shè)備中使用非常廣泛且方便。本文講解如何使用python操作sqlite數(shù)據(jù)庫2021-06-06
基于Python打造一個(gè)你的專屬中醫(yī)養(yǎng)生桌面時(shí)鐘
這篇文章主要和大家詳細(xì)介紹了一個(gè)有趣又有用的小項(xiàng)目,即使用 Python 編寫一個(gè)集成了公歷、農(nóng)歷和中醫(yī)十二時(shí)辰養(yǎng)生提示的桌面時(shí)鐘,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2026-01-01
PythonPC客戶端自動(dòng)化實(shí)現(xiàn)原理(pywinauto)
這篇文章主要介紹了Python基于pywinauto實(shí)現(xiàn)PC客戶端自動(dòng)化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法示例
這篇文章主要介紹了Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法,結(jié)合實(shí)例形式分析了Python使用pycrypto模塊進(jìn)行AES加密與解密操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04
python實(shí)現(xiàn)列表中由數(shù)值查到索引的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)列表中由數(shù)值查到索引的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python代碼結(jié)構(gòu)的基石之main函數(shù)實(shí)例詳解
Python作為一門較為靈活的解釋型腳本語言,其中定義的main()函數(shù)只有當(dāng)該P(yáng)ython腳本直接作為執(zhí)行程序時(shí)才會(huì)執(zhí)行,這篇文章主要介紹了Python代碼結(jié)構(gòu)的基石之main函數(shù)的相關(guān)資料,需要的朋友可以參考下2025-06-06
Python判斷兩個(gè)list是否是父子集關(guān)系的實(shí)例
今天小編就為大家分享一篇Python判斷兩個(gè)list是否是父子集關(guān)系的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05

