Attempt to connect to an SQL service using the given credentials without specifying a database.
(self, adresse_ip, user, password)
| 105 | self.scan = self.scan[self.scan["Ports"].str.contains("3306", na=False)] |
| 106 | |
| 107 | def sql_connect(self, adresse_ip, user, password): |
| 108 | """ |
| 109 | Attempt to connect to an SQL service using the given credentials without specifying a database. |
| 110 | """ |
| 111 | try: |
| 112 | # Première tentative sans spécifier de base de données |
| 113 | conn = pymysql.connect( |
| 114 | host=adresse_ip, |
| 115 | user=user, |
| 116 | password=password, |
| 117 | port=3306 |
| 118 | ) |
| 119 | |
| 120 | # Si la connexion réussit, récupérer la liste des bases de données |
| 121 | with conn.cursor() as cursor: |
| 122 | cursor.execute("SHOW DATABASES") |
| 123 | databases = [db[0] for db in cursor.fetchall()] |
| 124 | |
| 125 | conn.close() |
| 126 | logger.info(f"Successfully connected to {adresse_ip} with user {user}") |
| 127 | logger.info(f"Available databases: {', '.join(databases)}") |
| 128 | |
| 129 | # Sauvegarder les informations avec la liste des bases trouvées |
| 130 | return True, databases |
| 131 | |
| 132 | except pymysql.Error as e: |
| 133 | logger.error(f"Failed to connect to {adresse_ip} with user {user}: {e}") |
| 134 | return False, [] |
| 135 | |
| 136 | |
| 137 | def worker(self, progress, task_id, success_flag): |