[MYSQL] Connexion à une base de données
Bonjour à tous,
vraiment désolez n'étant pas un connaisseur, je suis néanmoins obliger de faire fonctionner un outils d'analyse réseau , pour lequel le script ci joint doit permettre de générer un fichier ayant la liste de mes sous réseaux, celui ci se connectant à une base mysql locale.
Pourriez vous silvousplait m'aider à le compléter, je suis archi nulle en perl, mais excellent sur d'autres domaines..... bien merci d'avance !!;)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
| #! /usr/bin/perl
package SubnetFileBuilder ;
# La classe SubnetFileBuilder contient une opération de reconstruction du fichier
# des sous-réseaux (organismes).
use strict ;
use POSIX ;
use Configuration ;
use DBI;
#use File::Path; # pour utiliser mkpath( "$ROOTbase/$DIR" , 0 , $perm ); et rmtree()
use File::Compare;
use File::Copy ;
# use English ;
# use File::Temp qw/ tempdir /;
use Carp qw(cluck confess);
#-------------------------------------------------------------------------------------------
# Génération du(es) fichier(s) des organismes à partir de la base de données des numéros IPs
# Les noms sont de la forme :
# organismes_nom.entites_nom.sites_nom
#
# Le nom du fichier généré est recherché dans le fichier de configuration passé en paramètre
# (rubrique NETMAT-ORGA-FILE).
# Si un fichier de même nom existe déjà il est sauvegardé dès lors que la nouvelle version
# est différente de l'ancienne.
#
# Si le fichier de configuration contient un paramètre NETMAT-MERGING-FILE-NAME et qu'il est
# différent de NETMAT-ORGA-FILE un fichier à ce nom est obtenu par copie de NETMAT-ORGA-FILE
# et concaténation de la ligne
# 0.0.0.0/0 "BLACK_HOLE"
#
# Les appels sont de la forme :
# SubnetFileBuilder::buildSubnetFile($DBIdriver,$SQLhost,$SQLdb,$SQLuser,$SQLpasswd)
# ou
# SubnetFileBuilder::buildSubnetFile()
#
# Les paramètres sont
# $DBIdriver : le type de base de données utilisée
# $SQLhost : la machine hôte de la base
# $SQLdb : le nom de la base
# $SQLuser : le nom de l'utilisateur de la base
# $SQLpasswd : le mot de passe de l'utilisateur
# Si la fonction est utilisée sans paramètre un dialogue permet leur saisie
# sur l'entrée standard
#
# Retourne un libellé d'erreur en cas de problème, la chaîne vide sinon.
#
#
sub buildSubnetFile {
DBIdriver : "DBD::mysql";
SQLhost : "localhost";
SQLdb : "netmatdb";
SQLuser : "netMAT";
SQLpasswd : "F1zKbtCd91";
} # buildSubnetFile()
#-------------------------------------------------------------------------------------------
# Liste des organismes de la base de données des numéros IPs.
#
# Les appels sont de la forme :
# SubnetFileBuilder::listSubnets($DBIdriver,$SQLhost,$SQLdb,$SQLuser,$SQLpasswd)
# ou
# SubnetFileBuilder::listSubnets()
#
# Les paramètres sont
# $DBIdriver : le type de base de données utilisée
# $SQLhost : la machine hôte de la base
# $SQLdb : le nom de la base
# $SQLuser : le nom de l'utilisateur de la base
# $SQLpasswd : le mot de passe de l'utilisateur
# Si la fonction est utilisée sans paramètre un dialogue permet leur saisie
# sur l'entrée standard
#
# Retourne un libellé d'erreur en cas de problème, la chaîne vide sinon.
#
#
sub listSubnets {
## A COMPLETER
## Le code de la fonction doit être placé avant le return ci-dessous qui
## dès lors peut être supprimé.
return "SubnetFileBuilder::listSubnets() n'est pas opérationnelle !"
} # listSubnets()
#-------------------------------------------------------------------------------------------
# Génération du fichier des sous-réseaux à partir de la base de données des numéros IPs.
# Le nom du fichier généré est le premier paramètre.
# Si un fichier de même nom existe déjà il est sauvegardé dès lors que la nouvelle version
# est différente de l'ancienne.
#
# Les appels sont de la forme :
# SubnetFileBuilder::buildAlternativeSubnetFile($fileName,$DBIdriver,$SQLhost,$SQLdb,$SQLuser,$SQLpasswd)
# ou
# SubnetFileBuilder::buildAlternativeSubnetFile($fileName)
#
# Les paramètres sont
# $fileName : le nom du fichier généré
# $DBIdriver : le type de base de données utilisée
# $SQLhost : la machine hôte de la base
# $SQLdb : le nom de la base
# $SQLuser : le nom de l'utilisateur de la base
# $SQLpasswd : le mot de passe de l'utilisateur
# Si la fonction est utilisée sans paramètre un dialogue permet leur saisie
# sur l'entrée standard
#
# Retourne un libellé d'erreur en cas de problème, la chaîne vide sinon.
#
#
sub buildAlternativeSubnetFile {
## A COMPLETER
## Le code de la fonction doit être placé avant le return ci-dessous qui
## dès lors peut être supprimé.
return "SubnetFileBuilder::buildAlternativeSubnetFile() n'est pas opérationnelle !"
} # buildAlternativeSubnetFile()
1 ; |
modification d'information
Vraiment désolez , nullement est mon idée de faire sous traité mon travail ou du travail !!!! :roll::roll: ; comme je le disais plus tot, de formation je suis plutôt DBA oracle, et j'ai de l'expertise sur plusieurs domaines mais j'avais touché à du perl, et pas grand fan de l'orienté objet non plus!! désolez !!! j'arrive pas à le comprendre!!
en gros je voudrais compléter ce script, qui est un package contenant une fonction la "buildSubnetFile" celle-ci est appeler dans un autre script et permet de générer un fichier.
Code:
1 2 3 4 5 6 7 8 9
| sub buildSubnetFile {
DBIdriver : "DBD::mysql"; # je ne sais pas si c'est juste ??
SQLhost : "localhost";
SQLdb : "netmatdb";
SQLuser : "netMAT";
SQLpasswd : "F1zKbtCd91";
} # buildSubnetFile() |
à savoir compléter cette fonction dont le but est de se connecter à une base mysql et en extrait ou renvoi des valeurs !!!!