3 回答

TA貢獻1798條經驗 獲得超3個贊
您可以嘗試將 openVPN 連接作為進程并在腳本末尾將其終止,如下所示:
cmd = 'start /b cmd /c "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect config.ovpn'
args = shlex.split(cmd)
x = subprocess.Popen(args, shell=True)
...
...
...
try:
x.kill()
except:
pass
使示例適應您的操作系統很容易。

TA貢獻1816條經驗 獲得超6個贊
不。網絡功能在內核中,并且對所有進程都以相同的方式工作。
在 Linux 中,您可能會使用 iptables 做一些技巧(例如,根據進程 ID 標記數據包,使用不同的路由表等),但這并不是一個真正的好方法。如果您需要這樣的隔離,請考慮在單獨的虛擬機中運行 Python 程序。
不過,您可以從 Python 控制 openvpn - 運行它、啟動它或停止它。

TA貢獻1824條經驗 獲得超8個贊
如果您使用 OpenVPN 作為代理,這是可能的
import requests
proxies = {
?'http': 'http://your.proxy.addres:port',
}
r = requests.get('http://somesite.com', proxies=proxies)
添加回答
舉報