import { networkInterfaces } from 'os' /** * Restituisce gli indirizzi IP di rete del sistema, escludendo loopback e bridge Docker. * @returns {string[]} Elenco degli indirizzi IP disponibili. */ export function getNetworkIPs() { const nets = networkInterfaces() const networkIPs = [] for (const name of Object.keys(nets)) { for (const net of nets[name]) { // Esclude loopback (127.0.0.1), indirizzi non IPv4 e bridge Docker (172.17.x.x, 172.18.x.x). if (net.family === 'IPv4' && !net.internal && !net.address.startsWith('172.17.') && !net.address.startsWith('172.18.')) { networkIPs.push(net.address) } } } return networkIPs } /** * Stampa il riepilogo di avvio del server con gli URL di accesso. * @param {number} displayPort - Porta del display. * @param {number} controllerPort - Porta del controller. */ export function printServerInfo(displayPort = 5173, controllerPort = 3001) { const networkIPs = getNetworkIPs() console.log(`\nSegnapunti Server`) console.log(` Display: http://127.0.0.1:${displayPort}/`) console.log(` Controller: http://127.0.0.1:${controllerPort}/`) if (networkIPs.length > 0) { console.log(`\n Controller da dispositivi remoti:`) networkIPs.forEach(ip => { console.log(` http://${ip}:${controllerPort}/`) }) } console.log() }