El método os.networkInterfaces() es una interfaz de programación de aplicaciones incorporada del módulo os que se utiliza para obtener información sobre las interfaces de red de la computadora.
Sintaxis:
os.networkInterfaces()
Parámetros: este método no acepta ningún parámetro.
Valor devuelto: este método devuelve un objeto que contiene información sobre cada interfaz de red. El objeto devuelto contendrá la array de interfaces de red que nuevamente consta de los siguientes atributos:
- dirección: una string que especifica la dirección de red asignada, es decir, IPv4 o IPv6/
- máscara de red: una string que especifica la máscara de red IPv4 o IPv6.
- familia: una string que especifica la familia, el valor es uno de IPv4 o IPv6.
- mac: una string que especifica la dirección MAC de la interfaz de red.
- interno: un valor booleano, verdadero si la interfaz es loopback uno, falso de lo contrario.
- scopeid: un número que especifica el ID de alcance para IPv6.
- cidr: una string que especifica la dirección IPv4 o IPv6 asignada con el prefijo de enrutamiento en notación CIDR. Se establece en nulo si la máscara de red no es válida.
Los siguientes ejemplos ilustran el uso del método os.networkInterfaces() en Node.js:
Ejemplo 1:
// Node.js program to demonstrate the // os.networkInterfaces() Method // Allocating os module const os = require('os'); // Print os.networkInterfaces() value console.log(os.networkInterfaces());
Producción:
{ 'Wi-Fi': [ { address: 'fe80::242a:3451:7fb2:3ab1', netmask: 'ffff:ffff:ffff:ffff::', family: 'IPv6', mac: 'b3:52:16:13:de:b9', scopeid: 3, internal: false, cidr: 'fe80::242a:3451:7fb2:3ab1/64' }, { address: '192.168.0.5', netmask: '255.255.255.0', family: 'IPv4', mac: 'b3:52:16:13:de:b9', internal: false, cidr: '192.168.0.5/24' } ], 'Loopback Pseudo-Interface 1': [ { address: '::1', netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', family: 'IPv6', mac: '00:00:00:00:00:00', scopeid: 0, internal: true, cidr: '::1/128' }, { 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' } ] }
Ejemplo 2:
// Node.js program to demonstrate the // os.networkInterfaces() Method // Allocating os module const os = require('os'); // Print os.networkInterfaces() value var net_int = os.networkInterfaces(); var no_of_network_interfaces = 0; for (var key in net_int) { console.log(key); var net_infos=net_int[key]; net_infos.forEach(element => { no_of_network_interfaces++; console.log("\tinterface:"); for (var attr in element){ console.log("\t\t" + attr + " : " + element[attr] ); } }); } console.log("total number of Network " + "interfaces is " + no_of_network_interfaces);
Producción:
Wi-Fi interface: address : fe80::242a:3451:7fb2:3ab1 netmask : ffff:ffff:ffff:ffff:: family : IPv6 mac : b3:52:16:13:de:b9 scopeid : 3 internal : false cidr : fe80::242a:3451:7fb2:3ab1/64 interface: address : 192.168.0.5 netmask : 255.255.255.0 family : IPv4 mac : b3:52:16:13:de:b9 internal : false cidr : 192.168.0.5/24 Loopback Pseudo-Interface 1 interface: address : ::1 netmask : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff family : IPv6 mac : 00:00:00:00:00:00 scopeid : 0 internal : true cidr : ::1/128 interface: 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 total number of Network interfaces is 4
Nota: El programa anterior se compilará y ejecutará usando el node filename.js
comando.
Referencia: https://nodejs.org/api/os.html#os_os_networkinterfaces