const os = require('os');
// Get network interfaces
const networkInterfaces = os.networkInterfaces();
console.log('Network Interfaces:');
console.log(JSON.stringify(networkInterfaces, null, 2));
// Iterate through network interfaces
Object.keys(networkInterfaces).forEach((interfaceName) => {
console.log(`\nInterface: ${interfaceName}`);
networkInterfaces[interfaceName].forEach((intf) => {
console.log(` Address Family: ${intf.family}`);
console.log(` IP Address: ${intf.address}`);
console.log(` Netmask: ${intf.netmask}`);
if (intf.mac) {
console.log(` MAC Address: ${intf.mac}`);
}
console.log(` Internal: ${intf.internal ? 'Yes' : 'No'}`);
});
});
// Function to get primary IPv4 address (non-internal)
function getPrimaryIPv4Address() {
const interfaces = os.networkInterfaces();
for (const name of Object.keys(interfaces)) {
for (const intf of interfaces[name]) {
// Skip internal and non-IPv4 addresses
if (!intf.internal && intf.family === 'IPv4') {
return intf.address;
}
}
}
return 'No IPv4 address found';
}
console.log(`\nPrimary IPv4 Address: ${getPrimaryIPv4Address()}`);
Network Interfaces: { "lo": [ { "address": "127.0.0.1", "netmask": "255.0.0.0", "family": "IPv4", "mac": "00:00:00:00:00:00", "internal": true, "cidr": "127.0.0.1/8" }, { "address": "::1", "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "family": "IPv6", "mac": "00:00:00:00:00:00", "internal": true, "cidr": "::1/128", "scopeid": 0 } ], "eth0": [ { "address": "192.168.1.1", "netmask": "255.255.255.0", "family": "IPv4", "mac": "aa:bb:cc:dd:ee:ff", "internal": false, "cidr": "192.168.1.1/24" }, { "address": "aa00::bb11:cc22:dd33:ee44%eth0", "netmask": "ffff:ffff:ffff:ffff::", "family": "IPv6", "mac": "aa:bb:cc:dd:ee:ff", "internal": false, "cidr": "aa00::bb11:cc22:dd33:ee44%eth0/64", "scopeid": 1 } ] } Interface: lo Address Family: IPv4 IP Address: 127.0.0.1 Netmask: 255.0.0.0 MAC Address: 00:00:00:00:00:00 Internal: Yes Address Family: IPv6 IP Address: ::1 Netmask: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff MAC Address: 00:00:00:00:00:00 Internal: Yes Interface: eth0 Address Family: IPv4 IP Address: 192.168.1.1 Netmask: 255.255.255.0 MAC Address: aa:bb:cc:dd:ee:ff Internal: No Address Family: IPv6 IP Address: aa00::bb11:cc22:dd33:ee44%eth0 Netmask: ffff:ffff:ffff:ffff:: MAC Address: aa:bb:cc:dd:ee:ff Internal: No Primary IPv4 Address: 192.168.1.1