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
| use DBI;
use CGI;
$co = new CGI;
$database="arpwatch", $hostname="localhost", $login="arpwatch";
$mdp="%+arpwatch";
$dsn = "DBI:mysql:database=$database;host=$hostname";
$dbh = DBI->connect($dsn, $login, $mdp) or die "Echec de connexion";
my ($fichier, $dossier) = (undef, '/home/belloise/collecte');
opendir (my $dir, $dossier) or die "$dossier n'existe pas !";
my @files = readdir $dir;
foreach $fichier (@files)
{
open(fichier, $fichier) or die "Problème lors de l'ouverture de $fichier\n";
my $ligne;
while ($ligne = <fichier>)
{
if($ligne =~ /(.*)\t(.*)\t(.*)\t(.*)\t.*/)
{
my $mac = $1, $ip = $2, $epoch = $3, $texte = $4;
my $requete_verif = "SELECT * FROM enregistrement WHERE mac = '$mac' AND ip = '$ip' AND epoch = '$epoch'
AND source = '$fichier'";
my $sth_verif = $dbh->prepare($requete_verif) or die "erreur de préparation\n";
$sth_verif ->execute() or die "erreur d'exécution\n";
my $rows = $sth_verif->rows;
$sth_verif->finish;
# si le nombre d'enregistrements récupérés est égal à zéro
if ($rows == 0)
{
my $requete = "INSERT INTO enregistrement (mac, ip, epoch, texte, source, date_enregistrement ) VALUES ('$mac',
'$ip', '$epoch', '$texte', '$fichier', NOW())";
my $sth = $dbh->prepare($requete) or die "erreur de préparation\n";
$sth->execute() or die "erreur d'exécution\n";
$sth->finish;
}
}
else
{
}
}
close (fichier, $fichier);
}
$dbh->disconnect;
closedir $dir; |
Partager