Bonjour,

J'utilise le module Net::ISC:HCPd::Config pour parser la configuration du fichier de conf dhcpd donc voici un extrait :

subnet 192.168.10.0 netmask 255.255.255.0 {
option routers 192.168.10.1;
range 192.168.10.100 192.168.10.200;

host pnom {
hardware ethernet D0:AA:12:BC:13:65;
fixed-address pnom.domain.net
}
host pnom2 {
hardware ethernet D0:AA:12:BC:13:66;
fixed-address pnom2.domain.net
}
}
subnet 192.168.20.0 netmask 255.255.255.0 {
option routers 192.168.10.1;
range 192.168.10.100 192.168.10.200;
host pnom3 {
hardware ethernet D0:AA:12:BC:13:67;
fixed-address pnom.domain.net
}
host pnom4 {
hardware ethernet D0:AA:12:BC:13:68;
fixed-address pnom2.domain.net
}
}
subnet 192.168.30.0 netmask 255.255.255.0 {
option routers 192.168.10.1;
range 192.168.10.100 192.168.10.200;
host pnom5 {
hardware ethernet D0:AA:12:BC:13:69;
fixed-address pnom.domain.net
}
}
et le début du script…

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#! /usr/bin/perl
 
use sctrict; 
use warnings;
use utf8;
use Data::Dumper;
 
use Net::ISC::DHCPd::Config;
 
my $config = Net::ISC::DHCPd::Config->new(file => './dhcpd.conf');
$config->parse;
 
print Dumper \$config;
Jusque là tout va bien, mon fichier de conf est parfaitement bien parsé.

Maintenant je souhaite ajouté pnom6 dans le subnet 192.168.20.0:

host pnom6 {
hardware ethernet D0:AA:12:BC:13:6A;
fixed-address pnom.domain.net
}
Comment faire?

Sachant que pour ajouter un host je peux faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$config->add_host({
    name => 'pnom6',
)}
mais l'host ajouté n'a pas les attributs hardware ethernet et fixed-address, et il est ajouté à la racine du fichier de conf, je ne sais pas comment l'ajouter dans un subnet.

Je ne vois pas de méthodes documentées dans le CPAN me permettant de faire çà.

Ensuite pour réécrire le fichier de conf il me resterai plus qu' à faire $config->generate …

Merci d'avance pour ceux qui voudront bien apporter leur aide