Node.js os.networkInterfaces() 方法
os.networkInterfaces() 方法是 os 模块的内置应用程序编程接口,用于获取有关计算机网络接口的信息。
句法:
os.networkInterfaces()
参数:此方法不接受任何参数。
返回值:此方法返回一个对象,其中包含有关每个网络接口的信息。返回的对象将包含网络接口数组,该数组再次包含以下属性:
- 地址:一个字符串,指定分配的网络地址,即 IPv4 或 IPv6/
- 网络掩码:指定 IPv4 或 IPv6 网络掩码的字符串。
- family:指定 Family 的字符串,值为 IPv4 或 IPv6 之一。
- mac:一个字符串,指定网络接口的 MAC 地址。
- internal:一个布尔值,如果接口是环回一,则为 true,否则为 false。
- scopeid:一个数字,用于指定 IPv6 的范围 ID。
- cidr:一个字符串,它使用 CIDR 表示法的路由前缀指定分配的 IPv4 或 IPv6 地址。如果网络掩码无效,则设置为 null。
以下示例说明了 Node.js 中os.networkInterfaces() 方法的使用:
示例 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());
输出:
{ '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' } ] }
示例 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);
输出:
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
注意:上面的程序将使用node filename.js
命令编译和运行。
参考: https://nodejs.org/api/os.html#os_os_networkinterfaces