0% ont trouvé ce document utile (0 vote)
53 vues3 pages

Chatbot D'automatisation Réseau

Le document présente un chatbot d'automatisation réseau capable de gérer des équipements comme des routeurs. Il permet aux utilisateurs de se connecter à des routeurs, d'ajouter de nouveaux routeurs, de lister les routeurs configurés, de montrer la configuration, et d'effectuer des diagnostics réseau tels que le ping et le traceroute. Le chatbot utilise la bibliothèque NLTK pour le traitement du langage naturel et Netmiko pour la gestion des connexions réseau.

Transféré par

jagossou81
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
53 vues3 pages

Chatbot D'automatisation Réseau

Le document présente un chatbot d'automatisation réseau capable de gérer des équipements comme des routeurs. Il permet aux utilisateurs de se connecter à des routeurs, d'ajouter de nouveaux routeurs, de lister les routeurs configurés, de montrer la configuration, et d'effectuer des diagnostics réseau tels que le ping et le traceroute. Le chatbot utilise la bibliothèque NLTK pour le traitement du langage naturel et Netmiko pour la gestion des connexions réseau.

Transféré par

jagossou81
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

import re

import random
import json
import nltk
from nltk.chat.util import Chat, reflections
import netmiko
import paramiko

# Téléchargement des ressources NLTK nécessaires


nltk.download('punkt')

class NetworkRoutingChatbot:
def __init__(self):
# Configuration des équipements réseau
self.network_devices = {}

# Modèle de conversation
self.conversation_patterns = [
# Connexion et gestion des équipements
(r'connecte(?:r)? (?:au )?routeur ([\w\.\-]+)',
self.connect_to_router),
(r'ajoute(?:r)? un routeur', self.add_router),
(r'liste(?:r)? (?:mes )?routeurs', self.list_routers),

# Tâches de configuration
(r'montre(?:r)? (?:la )?configuration', self.show_router_config),
(r'modifie(?:r)? (?:la )?route', self.modify_route),
(r'ajoute(?:r)? (?:une )?route', self.add_route),

# Diagnostics réseau
(r'ping ([\w\.\-]+)', self.perform_ping),
(r'trace(?:route)? ([\w\.\-]+)', self.perform_traceroute),

# Gestion générale
(r'aide', self.show_help),
(r'au secours', self.show_help)
]

# Initialisation du chat
self.chatbot = Chat(self.conversation_patterns, reflections)

def connect_to_router(self, router_name):


"""Connexion à un routeur existant"""
if router_name in self.network_devices:
device = self.network_devices[router_name]
try:
connection = netmiko.ConnectHandler(**device)
return f"Connecté avec succès au routeur {router_name}"
except Exception as e:
return f"Erreur de connexion : {str(e)}"
return f"Routeur {router_name} non trouvé"

def add_router(self, *args):


"""Assistant pour ajouter un nouveau routeur"""
print("Ajoutons un nouveau routeur. Répondez aux questions suivantes :")

nom = input("Nom du routeur : ")


ip = input("Adresse IP : ")
username = input("Nom d'utilisateur : ")
password = input("Mot de passe : ")
type_routeur = input("Type de routeur (cisco_ios, juniper, etc.) : ")

new_device = {
'device_type': type_routeur,
'host': ip,
'username': username,
'password': password
}

self.network_devices[nom] = new_device
return f"Routeur {nom} ajouté avec succès"

def list_routers(self, *args):


"""Liste tous les routeurs configurés"""
if not self.network_devices:
return "Aucun routeur configuré"

return "Routeurs configurés :\n" + "\n".join(self.network_devices.keys())

def show_router_config(self, *args):


"""Affiche la configuration d'un routeur"""
if not self.network_devices:
return "Aucun routeur configuré"

nom_routeur = input("Quel routeur voulez-vous configurer ? ")


if nom_routeur in self.network_devices:
try:
connection =
netmiko.ConnectHandler(**self.network_devices[nom_routeur])
config = connection.send_command("show running-config")
return config
except Exception as e:
return f"Erreur lors de la récupération de la configuration :
{str(e)}"
return f"Routeur {nom_routeur} non trouvé"

def modify_route(self, *args):


"""Modification de route réseau"""
return "Fonction de modification de route en cours de développement"

def add_route(self, *args):


"""Ajout d'une nouvelle route"""
return "Fonction d'ajout de route en cours de développement"

def perform_ping(self, target):


"""Réalise un ping vers une destination"""
try:
import subprocess
result = subprocess.run(['ping', '-c', '4', target],
capture_output=True, text=True)
return result.stdout
except Exception as e:
return f"Erreur lors du ping : {str(e)}"

def perform_traceroute(self, target):


"""Réalise un traceroute vers une destination"""
try:
import subprocess
result = subprocess.run(['traceroute', target], capture_output=True,
text=True)
return result.stdout
except Exception as e:
return f"Erreur lors du traceroute : {str(e)}"

def show_help(self, *args):


"""Affiche l'aide et les commandes disponibles"""
help_text = """
🤖 Assistant Réseau - Commandes Disponibles 🌐

Gestion des Routeurs :


- 'connecter au routeur [nom]'
- 'ajouter un routeur'
- 'lister mes routeurs'

Configuration :
- 'montrer la configuration'
- 'modifier la route'
- 'ajouter une route'

Diagnostics :
- 'ping [adresse]'
- 'traceroute [adresse]'

Autres :
- 'aide' ou 'au secours' pour afficher ce menu
"""
return help_text

def start_chat(self):
"""Lance l'interface de chat interactive"""
print("🤖 Bonjour ! Je suis votre assistant d'automatisation réseau.")
print("Tapez 'aide' pour voir les commandes disponibles.")

while True:
user_input = input("\n> ")

if user_input.lower() in ['quit', 'exit', 'bye']:


print("Au revoir ! 👋")
break

response = self.chatbot.respond(user_input)
print(response)

def main():
chatbot = NetworkRoutingChatbot()
chatbot.start_chat()

if __name__ == "__main__":
main()

Vous aimerez peut-être aussi