diff --git a/dist/main.exe b/dist/main.exe index 784b050..4e90102 100644 Binary files a/dist/main.exe and b/dist/main.exe differ diff --git a/main.py b/main.py index 9e7dfd9..3e4d15b 100644 --- a/main.py +++ b/main.py @@ -1,14 +1,10 @@ -import mysql.connector -import subprocess -import csv -from datetime import datetime import socket import adcontroller_export import exchange_export import smtp_export import rds_export -import ssh_tunnel import mysql_connect + def get_local_ip(): try: # Socket erstellen, um die lokale IP-Adresse zu ermitteln @@ -80,25 +76,24 @@ def gucamole(ip,servername): ## Import User + Maschinen als RAW print("" + ip + servername) -# Verbindung zur Datenbank herstellen -# SSH Tunnel aufbauen -ssh_tunnel.create_ssh_tunnel() +# query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format(get_local_ip()) +query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format("172.18.1.3") -query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format(get_local_ip()) list = mysql_connect.get_ip(query) # Ergebnisse durchlaufen und ausgeben for row in list: + print(row) name = row[1] ipadress = row[3] lastchange = row[5] funktion = row[6] token = row[7] - print(name) cursor = mysql_connect.get_database() # Überprüfen, ob die Datenbank bereits existiert + database_exists = False for (db_name,) in cursor: if db_name == name: @@ -108,7 +103,7 @@ for row in list: # Datenbank erstellen, wenn sie noch nicht existiert if not database_exists: create_database_query = f"CREATE DATABASE {name}" - cursor.execute(create_database_query) + mysql_connect.create_database(create_database_query) print(f"Die Datenbank '{name}' wurde erfolgreich erstellt.") else: print(f"Die Datenbank '{name}' existiert bereits.") @@ -119,7 +114,4 @@ for row in list: else: eval(funktion + '("' + ipadress + '","' + name + '")') except NameError: - print("Die Funktion existiert nicht.") - -# Verbindung schließen -ssh_tunnel.close_ssh_tunnel() + print("Die Funktion existiert nicht.") \ No newline at end of file diff --git a/mysql_connect.py b/mysql_connect.py index a09bf77..d3ac935 100644 --- a/mysql_connect.py +++ b/mysql_connect.py @@ -1,29 +1,45 @@ import mysql.connector +import mysql.connector.locales.eng.client_error +from sshtunnel import SSHTunnelForwarder +server = SSHTunnelForwarder( + ('forward.stines.de', 2223), + ssh_username="root", + ssh_password="adm.3dfx12", + remote_bind_address=('127.0.0.1', 3306) +) +server.start() +print(server.local_bind_port) mydb = mysql.connector.connect( - host="172.17.1.21", + host="127.0.0.1", + port=server.local_bind_port, user="root", password="N53yBCswuawzBzS445VNAhWVMs3N59Gb9szEsrzXRBzarDqpdETpQeyt5v5CGe", database="Stines-GmbH" ) - - def get_ip(query): + print("GetIP") + mydb.connect() cursor = mydb.cursor() cursor.execute(query) + mydb.close() return cursor.fetchall() - def get_database(): cursor = mydb.cursor() cursor.execute('SHOW DATABASES') - return cursor - + return cursor.fetchall() def create_database(query): + print(query) cursor = mydb.cursor() cursor.execute(query) + mydb.commit() + mydb.close() return ("Database Created") - -def add_user(query): +def add_user(query, user): + print("add_user") + mydb.connect() cursor = mydb.cursor() - cursor.execute(query) - return (query) \ No newline at end of file + cursor.execute(query, user) + mydb.commit() + mydb.close() + return ("user Addet") \ No newline at end of file diff --git a/rds_export.py b/rds_export.py index be1b216..91fa539 100644 --- a/rds_export.py +++ b/rds_export.py @@ -9,7 +9,6 @@ def rds (ip,name): # Die Ausgabe des Befehls aufteilen und die Benutzernamen und Anmeldezeiten extrahieren output_lines = result.stdout.strip().split('\n')[1:] logged_in_users = [] - print(logged_in_users) # Tabelle erstellen, falls sie noch nicht existiert table_name = "RDS-Online-User" @@ -18,7 +17,6 @@ def rds (ip,name): create_table_query += f"`{field}` TEXT, " create_table_query = create_table_query.rstrip(", ") + ")" create_table_query += " ROW_FORMAT=DYNAMIC" - row_length = len(create_table_query) mysql_connect.create_database(create_table_query) for line in output_lines: diff --git a/ssh_tunnel.py b/ssh_tunnel.py deleted file mode 100644 index 6c621fa..0000000 --- a/ssh_tunnel.py +++ /dev/null @@ -1,25 +0,0 @@ -import paramiko - -def create_ssh_tunnel(): - # Erstelle eine SSH-Verbindung zum SSH-Server - local_port = 8888 # Der lokale Port, auf dem der Tunnel lauschen soll - remote_host = "172.17.1.21" # Hostname des Servers, auf den du zugreifen möchtest - remote_port = 3306 # Port des Servers, den du zugreifen möchtest (hier ist es der SSH-Port) - ssh_host = "172.17.1.21" # SSH-Server, über den der Tunnel geleitet wird - ssh_port = 22 # SSH-Port (Standard ist 22) - ssh_username = "root" # Dein SSH-Benutzername - ssh_password = "adm.3dfx12" # Dein SSH-Passwort - ssh_client = paramiko.SSHClient() - ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - ssh_client.connect(ssh_host, port=ssh_port, username=ssh_username, password=ssh_password) - - # Erstelle den SSH-Tunnel - ssh_tunnel = ssh_client.get_transport().open_channel( - "direct-tcpip", - (remote_host, remote_port), - ("localhost", local_port) - ) - return ssh_tunnel - -def close_ssh_tunnel(): - paramiko.SSHClient().close()