#!/usr/bin/perl -w
use strict;
use warnings;
use DBI;
#Connection à la base de donnes OCS
my $dns = 'dbi:mysql:ocsweb:localhost';
my $login = 'root';
my $passwd = 'secret';
my $dbh = DBI->
connect($dns,
$login,
$passwd) or die "Connection impossible: $DBI::errstr\n";
# Recuperation des IP et des MAC des postes SANS "Anti-virus"
my $query = "SELECT DISTINCT hard.NAME, net.IPADDRESS, net.MACADDR ".
"FROM softwares AS soft, hardware AS hard, networks AS net ".
"WHERE hard.ID = soft.HARDWARE_ID ".
"AND hard.ID = net.HARDWARE_ID ".
"AND net.STATUS = 'up' ".
"AND soft.name NOT LIKE '%anti-virus%' ".
"ORDER BY INET_ATON(net.IPADDRESS) ";
my $result =
$dbh->
prepare($query) or die "Preparation impossible: $DBI::errstr\n";
$result->
execute() or die "Execution impossible: $DBI::errstr\n";
#$result->dump_results();
printf ("Il y a %d correspondances:\n",
$result->
rows);
while ( my ($name, $ip, $mac) = $result->fetchrow_array()){
print "$name, \t$ip, \t$mac\n";
}
$result->finish();
$dbh->disconnect();
0 comment about "Requete SQL sur la base d'OCS Inventory en Perl"