Finish Project
This commit is contained in:
+111
-2
@@ -1,6 +1,51 @@
|
||||
import requests
|
||||
import shutil
|
||||
import subprocess
|
||||
import os
|
||||
import toml
|
||||
import string
|
||||
import secrets
|
||||
import mysql_connect
|
||||
from kundennummer import create_gui
|
||||
import time
|
||||
import pyperclip
|
||||
import socket
|
||||
from datetime import datetime
|
||||
import socket
|
||||
|
||||
def get_hostname():
|
||||
print(socket.gethostname())
|
||||
return (socket.gethostname())
|
||||
|
||||
def get_local_ip():
|
||||
try:
|
||||
# Socket erstellen, um die lokale IP-Adresse zu ermitteln
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
s.connect(("8.8.8.8", 80)) # Eine temporäre Verbindung zu einem externen Server herstellen
|
||||
|
||||
# Die lokale IP-Adresse aus den Socketeigenschaften abrufen
|
||||
local_ip = s.getsockname()[0]
|
||||
|
||||
# Den Socket schließen
|
||||
s.close()
|
||||
|
||||
return local_ip
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Abrufen der lokalen IP-Adresse: {e}")
|
||||
return None
|
||||
|
||||
def generate_password(length=8):
|
||||
characters = string.ascii_letters + string.digits
|
||||
|
||||
# Hinzufügen der gewünschten Sonderzeichen
|
||||
special_characters = "!@#$%&"
|
||||
characters += special_characters
|
||||
|
||||
# Passwort generieren
|
||||
password = ''.join(secrets.choice(characters) for i in range(length))
|
||||
return password
|
||||
|
||||
password = generate_password()
|
||||
|
||||
def download_latest_rustdesk():
|
||||
# URL zum RustDesk-Repository
|
||||
@@ -15,13 +60,77 @@ def download_latest_rustdesk():
|
||||
|
||||
if download_url:
|
||||
# Herunterladen der .exe-Datei
|
||||
try:
|
||||
os.mkdir("C:\\temp")
|
||||
except:
|
||||
next
|
||||
exe_response = requests.get(download_url, stream=True)
|
||||
rustdesk_exe = "Rustdesk-host=remote.stines.de,key=QViLr1r9LsKiEWoMgA26pNGqgkyDXcZpvXqepqoa934=.exe"
|
||||
rustdesk_exe = "C:\\temp\\Rustdesk-host=remote.stines.de,key=QViLr1r9LsKiEWoMgA26pNGqgkyDXcZpvXqepqoa934=.exe"
|
||||
with open(rustdesk_exe, 'wb') as file:
|
||||
shutil.copyfileobj(exe_response.raw, file)
|
||||
subprocess.run(f"{rustdesk_exe} --slient-install")
|
||||
subprocess.Popen(f"{rustdesk_exe} --silent-install")
|
||||
|
||||
# Warte auf den Abschluss des Subprozesses und erhalte die Ausgabe
|
||||
time.sleep(6)
|
||||
subprocess.run("taskkill /IM cmd.exe")
|
||||
|
||||
print(f'RustDesk {release_data["tag_name"]} wurde erfolgreich als RustDesk.exe heruntergeladen.')
|
||||
else:
|
||||
print('Die neueste Version von RustDesk konnte nicht gefunden werden.')
|
||||
|
||||
def start_and_stop_rustdesk():
|
||||
subprocess.Popen(f"C:\\Program Files\\RustDesk\\rustdesk.exe --password {password}")
|
||||
time.sleep(1)
|
||||
subprocess.run("taskkill /IM rustdesk.exe")
|
||||
|
||||
def edit_toml():
|
||||
appdata_path = os.environ['APPDATA']
|
||||
file_path = f"{appdata_path}\\RustDesk\\config\\RustDesk2.toml"
|
||||
data = toml.load(file_path)
|
||||
data['options']['allow-remote-config-modification'] = 'Y'
|
||||
data['options']['relay-server'] = "remote.stines.de"
|
||||
data['options']['key'] = "QViLr1r9LsKiEWoMgA26pNGqgkyDXcZpvXqepqoa934="
|
||||
data['options']['verification - method'] = 'use-permanent-password'
|
||||
with open(file_path, 'w') as file:
|
||||
toml.dump(data, file)
|
||||
|
||||
def handle_submit():
|
||||
result_container = []
|
||||
create_gui(result_container)
|
||||
return result_container[0]
|
||||
|
||||
def get_firmenname():
|
||||
query = f"SELECT DISTINCT name FROM `Stines-GmbH`.`Kunden-Server` where Kundennummer = {handle_submit()}"
|
||||
return mysql_connect.get_user(query,'Stines-GmbH',"")
|
||||
|
||||
def create_database(name):
|
||||
table_name = "Rustdesk-Clients"
|
||||
create_table_query = f"CREATE TABLE IF NOT EXISTS `{table_name}` (id INT AUTO_INCREMENT PRIMARY KEY, importdate BIGINT(11), `Rustdesk-ID` TEXT, `Rustdesk-Password` TEXT,Hostname TEXT, `IP-Adresse` TEXT)"
|
||||
mysql_connect.create_database(create_table_query, name)
|
||||
|
||||
def get_rustdesk_id():
|
||||
subprocess.Popen("C:\Program Files\RustDesk\\rustdesk.exe --get-id",creationflags=subprocess.CREATE_NO_WINDOW,stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)
|
||||
time.sleep(1)
|
||||
subprocess.run("taskkill /IM rustdesk.exe")
|
||||
return pyperclip.paste()
|
||||
|
||||
|
||||
## Download Rustdesk
|
||||
download_latest_rustdesk()
|
||||
|
||||
start_and_stop_rustdesk()
|
||||
|
||||
## Edit Toml
|
||||
edit_toml()
|
||||
|
||||
## Get Firmenname
|
||||
firmenname = get_firmenname()[0][0]
|
||||
create_database(firmenname)
|
||||
|
||||
# ###Create Query for Import
|
||||
query = f"INSERT INTO `Rustdesk-Clients` (importdate,`Rustdesk-ID`,`Rustdesk-Password`,Hostname,`IP-Adresse`) VALUES (%s,%s,%s,%s,%s)"
|
||||
values=(int(datetime.now().timestamp()),get_rustdesk_id(),password,get_hostname(),get_local_ip())
|
||||
mysql_connect.add_user(query,firmenname,values)
|
||||
|
||||
|
||||
subprocess.Popen(f"C:\\Program Files\\RustDesk\\rustdesk.exe")
|
||||
Reference in New Issue
Block a user