Node.js - os.networkInterfaces() 方法



Node.js 的 os 模块提供了一堆与操作系统相关的实用方法和属性。

Node.js os.networkInterfaces() 方法将返回一个对象,其中包含已分配网络地址的网络接口。在返回的对象中,每个键都指定网络接口。

返回的对象包含具有某些属性的网络接口。这些属性如下所述 -

  • address - 这是一个字符串,具有分配的IPV4或IPV6地址。
  • netmask - 这是一个字符串,具有分配的IPV4或IPV6网络掩码。
  • netmask - 此字符串可以是IPV4或IPV6。
  • mac - 显示网络接口的 mac 地址的字符串
  • internal − 这是一个布尔值,如果网络接口是环回或无法远程访问的类似接口,则该值为 true。否则,它是错误的。
  • scopeid - 这是一个具有IPV6作用域ID的号码,仅当系列为IPV6时才适用。

cidr - 这是一个字符串,用于指定分配的IPV4或IPV6地址,并使用CIDR表示法中的路由前缀。如果网络掩码无效,则该属性设置为 NULL。

语法

以下是Node.js os.networkInterfaces()方法的语法 -


 os.networkInterfaces()

参数

此方法不接受任何参数。

返回值

此方法返回一个对象,其中包含有关特定网络的网络接口的信息。

在以下示例中,我们尝试使用 os.networkInterfaces() 方法打印网络的网络接口。


const os = require('os');
console.log("The network interfaces which have been assigned to this Network address are: ")	
console.log(os.networkInterfaces());

输出

正如我们在下面的输出中看到的,当前计算机已连接到以太网网络,并且 os.networkInterfaces() 方法返回了连接的“以太网”网络的网络接口。

The network interfaces which have been assigned to this Network address are:
{
Ethernet: [
{
address: 'fe80::46d1:d65a:b6cc:2926',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '88:a4:c2:bb:d1:f9',
internal: false,
cidr: 'fe80::46d1:d65a:b6cc:2926/64',
scopeid: 8
},
{
address: '192.168.2.33',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '88:a4:c2:bb:d1:f9',
internal: false,
cidr: '192.168.2.33/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',
internal: true,
cidr: '::1/128',
scopeid: 0
},
{
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'
}
]
}

在以下示例中,我们尝试打印当前系统连接到的各种网络接口的详细信息。


const os = require('os');
console.log(os.networkInterfaces());

输出

执行上述程序后,os.networkInterfaces() 方法返回了连接的“Wi-Fi”网络的网络接口。

{
'Wi-Fi': [
{
address: 'fe80::57e9:cc91:95fc:5f5b',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: 'bc:f1:71:3b:eb:a1',
internal: false,
cidr: 'fe80::57e9:cc91:95fc:5f5b/64',
scopeid: 16
},
{
address: '192.168.25.229',
netmask: '255.255.255.0',
family: 'IPv4',
mac: 'bc:f1:71:3b:eb:a1',
internal: false,
cidr: '192.168.25.229/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',
internal: true,
cidr: '::1/128',
scopeid: 0
},
{
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'
}
]
}