Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Написанный VPN не работает на деле

No Bio Профи (717), на голосовании 2 месяца назад
 import requests  
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.clock import Clock

class VPNApp(App):
def build(self):
self.layout = BoxLayout(orientation='vertical')
self.label = Label(text='VPN Status: Disconnected')
self.connect_button = Button(text='Connect to VPN')
self.connect_button.bind(on_press=self.connect_vpn)

self.layout.add_widget(self.label)
self.layout.add_widget(self.connect_button)
return self.layout

def connect_vpn(self, instance):
Clock.schedule_once(self.connect_to_vpn, 0.1) # Добавляем небольшую задержку перед подключением

def connect_to_vpn(self, dt):
print("Connecting to VPN...")
api_url = "http://vpn591814087.opengw.net"
response = requests.get(api_url)
if response.status_code == 200:
self.label.text = 'благодарим вас за выбор нашего vpn!\nваше соединение защищено'
print("Connected to VPN!")
else:
self.label.text = f'Failed to connect VPN: {response.text}'
print("Failed to connect to VPN:", response.text)

if __name__ == '__main__':
VPNApp().run()
По идее, впн подключен (программа не выдает ошибку) код работает, но на деле нет. Что нужно исправить?
Код был запущен на телефоне Android
Голосование за лучший ответ
スネーク フリーフライト Ученик (223) 3 месяца назад
В вашем коде нет подключения к впн - это просто UI интерфейс

Можете использовать документацию на github
https://github.com/OpenVPN/python-openvpn

Вот использование на вашем примере
 import requests 
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.clock import Clock
from openvpn import openvpn
from openvpn import constants

class VPNApp(App):
def build(self):
self.layout = BoxLayout(orientation='vertical')
self.label = Label(text='VPN Status: Disconnected')
self.connect_button = Button(text='Connect to VPN')
self.connect_button.bind(on_press=self.connect_vpn)

self.layout.add_widget(self.label)
self.layout.add_widget(self.connect_button)
return self.layout

def connect_vpn(self, instance):
Clock.schedule_once(self.connect_to_vpn, 0.1)

def connect_to_vpn(self, dt):
print("Connecting to VPN...")
try:
# Замени 'vpn_config.ovpn'
vpn = openvpn.OpenVPN(config_file="vpn_config.ovpn")
vpn.start()
if vpn.wait_for_event(constants.EVENT_CONNECTED):
self.label.text = 'VPN Status: Connected'
print("Connected to VPN!")
else:
self.label.text = 'Failed to connect VPN'
except Exception as e:
self.label.text = f'Failed to connect VPN: {e}'
print("Failed to connect to VPN:", e)

if __name__ == '__main__':
VPNApp().run()
Похожие вопросы