REPORTS/main.py

132 lines
3.4 KiB
Python

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
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
# Funktion aufrufen und die lokale IP-Adresse des Hosts erhalten
def adcontroller(ip,name):
adcontroller_export.adcontroller(ip,name)
def exchange(ip,name):
exchange_export.exchange(ip,name)
def smtp(ip,name,token):
smtp_export.smtp(ip,name,token)
def rds(ip, name):
rds_export.rds(ip,name)
def cms(ip, servername):
## Import User als RAW
print("" + ip + servername)
def mstore(ip, servername):
## Import User(last Check) als RAW
print("" + ip + servername)
def cloud(ip,servername):
## Import User(space) als RAW
print("" + ip + servername)
def vpn(ip,servername):
## Import Online Time als RAW
print("" + ip + servername)
def nginx(ip,servername):
## Import Letsencrypt Time als RAW
print("" + ip + servername)
def zammad(ip,servername):
## Import Tickets Time als RAW
print("" + ip + servername)
def data(ip,servername):
## Import Space Used als RAW
print("" + ip + servername)
def omada(ip,servername):
## Import Access als RAW
print("" + ip + servername)
def matomo(ip,servername):
## Import Statics als RAW
print("" + ip + servername)
def gucamole(ip,servername):
## Import User + Maschinen als RAW
print("" + ip + servername)
# Verbindung zur Datenbank herstellen
mydb = mysql.connector.connect(
host="172.17.1.21",
user="root",
password="N53yBCswuawzBzS445VNAhWVMs3N59Gb9szEsrzXRBzarDqpdETpQeyt5v5CGe",
database="Stines-GmbH"
)
cursor = mydb.cursor()
print(get_local_ip())
query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = %s"
cursor.execute(query, (get_local_ip(),))
results = cursor.fetchall()
# Ergebnisse durchlaufen und ausgeben
for row in results:
name = row[1]
ipadress = row[3]
lastchange = row[5]
funktion = row[6]
token = row[7]
cursor.execute("SHOW DATABASES")
# Überprüfen, ob die Datenbank bereits existiert
database_exists = False
for (db_name,) in cursor:
if db_name == name:
database_exists = True
break
# Datenbank erstellen, wenn sie noch nicht existiert
if not database_exists:
create_database_query = f"CREATE DATABASE {name}"
cursor.execute(create_database_query)
print(f"Die Datenbank '{name}' wurde erfolgreich erstellt.")
else:
print(f"Die Datenbank '{name}' existiert bereits.")
try:
if token is not None:
eval(funktion + '("' + ipadress + '","' + name + '","' + token + '")')
else:
eval(funktion + '("' + ipadress + '","' + name + '")')
except NameError:
print("Die Funktion existiert nicht.")
# Verbindung schließen
mydb.close()