Récupération ip/mac de dhcpd.leases [RESOLU] [PERL] - Perl - Programmation
Marsh Posté le 16-12-2009 à 00:32:58
Un exemple de truc fait rapidement dont tu peux t'inspirer
J'ai remplacé tes fichiers par leases.in et leases.out pour tester
Code :
|
A+,
Marsh Posté le 16-12-2009 à 11:25:29
Tiens, en le relisant ce matin, je vois qu'il manque la raison pour laquelle j'ai créé le flag inleasebloc (pour vérifier la bonne cohérence des blocs):
Code :
|
A+,
Marsh Posté le 16-12-2009 à 13:27:17
encore merci, ça marche impec
mais comment fais tu pour afficher du code dans un carré comme ça?
Marsh Posté le 17-12-2009 à 02:31:13
Il faut utiliser le bbcode [code=perl]...[/code]
A+,
Marsh Posté le 15-12-2009 à 15:08:21
Bonjour,
je souhaite mettre en place avec perl un moyen d'extraction de données stockées dans le fichier /var/lib/dhcp3/dhcpd.leases. Il s'agit d'un fichier issu d'un serveur dhcp sous debian qui liste les machines ayant obtenu une adresse ip auprès du serveur.
le contenu du fichier ressemble à ceci:
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.1.1
lease 192.168.2.203 {
starts 4 2009/12/10 08:13:02;
ends 5 2009/12/11 08:13:02;
tstp 5 2009/12/11 08:13:02;
cltt 4 2009/12/10 08:13:02;
binding state free;
hardware ethernet 00:11:22:33:44:55;
uid "\001\000\"\375L\031\310";
}
lease 192.168.2.204 {
starts 4 2009/12/10 09:00:38;
ends 5 2009/12/11 09:00:38;
tstp 5 2009/12/11 09:00:38;
cltt 4 2009/12/10 09:00:38;
binding state free;
hardware ethernet aa:bb:cc:dd:ee:ff;
uid "\001\000\"\373z\332\276";
}
Il se peut qu'une ip soit présente plusieurs fois.
Ce que je souhaite, c'est copier dans un nouveau fichier les lignes contenant une ip et une adresse mac afin d'avoir une correspondance adresses ip/ adresses mac; et pourquoi pas la date aussi. mais concernant la date, j'ai déjà mis en place une autre solution.
J'arrive à extraire par exemple "192.168.2.203" pour le copier dans un nouveau fichier mais pas son adresse mac correspondante. et si cette ip est présente plusieurs fois, elle ne se retrouve qu'une fois dans le nouveau fichier.
mon script perl actuel:
#!/usr/bin/perl
# ouvre le fichier A en lecture seule
open (A, '</scripts/dhcpd.leases');
# tant que lecture ligne fichier
while ($ip=<A> )
{
# si adresse IP dans la ligne, capture l'IP
if ($ip =~ /192\.168\.2\.200/)
{
# ouvre en écriture le fichier B (s'il n'existe pas, il est créé)
open (B, '>/scripts/dhcp3/dhcp_200');
print B "$ip";
}
}
close A;
close B;
pourriez vous m'aider s'il vous plait?
merci
Message édité par thecoco le 16-12-2009 à 13:27:46