import fs from 'fs'; import path from 'path'; export function parseLeases() { const leaseFilePath = '/var/lib/dhcp/dhcpd.leases'; const fileContent = fs.readFileSync(leaseFilePath, 'utf8'); const leases = []; const leaseBlocks = fileContent.split('lease '); leaseBlocks.shift(); // Remove the first empty block leaseBlocks.forEach(block => { const lease = {}; const lines = block.split('\n'); lease.ip = lines[0].trim(); lines.forEach(line => { line = line.trim(); if (line.startsWith('starts')) { lease.start = line.split(' ')[2] + ' ' + line.split(' ')[3]; } else if (line.startsWith('ends')) { lease.end = line.split(' ')[2] + ' ' + line.split(' ')[3]; } else if (line.startsWith('binding state')) { lease.state = line.split(' ')[2]; } else if (line.startsWith('hardware ethernet')) { lease.mac = line.split(' ')[2].replace(';', ''); } else if (line.startsWith('client-hostname')) { lease.hostname = line.split(' ')[1].replace(';', '').replace(/"/g, ''); } }); leases.push(lease); }); return leases; }