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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python調(diào)用接口的4種方式代碼實(shí)例
這篇文章主要介紹了python調(diào)用接口的4種方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法
跳板機(jī)是一類可作為跳板批量操作的遠(yuǎn)程設(shè)備的網(wǎng)絡(luò)設(shè)備,是系統(tǒng)管理員和運(yùn)維人員常用的操作平臺(tái)之一。本文給大家介紹Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法,感興趣的朋友跟隨小編一起看看吧2021-10-10Python實(shí)現(xiàn)的視頻播放器功能完整示例
這篇文章主要介紹了Python實(shí)現(xiàn)的視頻播放器功能,結(jié)合完整實(shí)例形式分析了Python基于pyglet庫實(shí)現(xiàn)視頻播放功能的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02Python變量和數(shù)據(jù)類型和數(shù)據(jù)類型的轉(zhuǎn)換
這篇文章主要介紹了Python變量和數(shù)據(jù)類型和數(shù)據(jù)類型的轉(zhuǎn)換,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09Python實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換教程詳解
農(nóng)歷,是我國現(xiàn)行的傳統(tǒng)歷法。它是根據(jù)月相的變化周期,每一次月相朔望變化為一個(gè)月,參考太陽回歸年為一年的長度,并加入二十四節(jié)氣與設(shè)置閏月以使平均歷年與回歸年相適應(yīng)。本文將用Python實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換,需要的可以參考一下2022-03-03Python Des加密解密如何實(shí)現(xiàn)軟件注冊碼機(jī)器碼
這篇文章主要介紹了Python Des加密解密如何實(shí)現(xiàn)軟件注冊碼機(jī)器碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01