import { LiveboxClient, DynamicDHCPLease } from "../src/index"; import * as dotenv from "dotenv"; dotenv.config(); async function dynamicDHCPExample() { try { console.log("Testing getDynamicDHCPLeases..."); const client = new LiveboxClient( "192.168.1.1", "admin", process.env.LIVEBOX_PASSWORD || "your_password" ); const leases = await client.system.getDynamicDHCPLeases(); console.log("Dynamic DHCP Leases:"); // Display info for each dynamic lease const poolLeases = leases.status.default || {}; if (Object.keys(poolLeases).length === 0) { console.log(" No dynamic DHCP leases found."); } else { for (const [clientId, lease] of Object.entries(poolLeases) as [ string, DynamicDHCPLease, ][]) { console.log(`\nClient ID: ${clientId}`); console.log(` MAC Address: ${lease.MACAddress}`); console.log(` IP Address: ${lease.IPAddress}`); if (lease.FriendlyName) { console.log(` Device Name: ${lease.FriendlyName}`); } if (lease.LeaseTimeRemaining !== undefined) { const remainingHours = Math.floor(lease.LeaseTimeRemaining / 3600); const remainingMinutes = Math.floor( (lease.LeaseTimeRemaining % 3600) / 60, ); console.log( ` Lease Time Remaining: ${remainingHours}h ${remainingMinutes}m`, ); } console.log(` Active: ${lease.Active}`); } } console.log("Test passed!"); } catch (error) { console.error("Test failed:", error); } } dynamicDHCPExample();