21xrx.com
2024-09-19 09:55:35 Thursday
登录
文章检索 我的文章 写文章
Node.js:获取本机IP地址
2023-07-13 06:23:27 深夜i     --     --
Node js IP地址 本机 获取 TCP/IP协议

在许多 Node.js 应用程序中,需要获取本机IP地址以便正确地配置网络套接字。在这篇文章中,我们将介绍如何使用 Node.js 获取本机的 IP 地址。

1. 使用 os 模块

os 模块是一个 Node.js 标准库模块,它提供了与操作系统相关的信息和操作。其中,可以使用 os.networkInterfaces() 方法来获取本机的所有网络接口及其对应的 IP 地址。

下面是一个使用 os 模块获取本机 IP 地址的例子:


const os = require('os');

// 获取所有网络接口

const interfaces = os.networkInterfaces();

// 遍历所有网络接口

for (const name of Object.keys(interfaces)) {

 const iface = interfaces[name];

 // 遍历接口下的所有 IP 地址

 for (const addr of iface) {

  // 忽略 IPv6 地址和本地回环地址

  if (addr.family === 'IPv4' && !addr.internal) {

   console.log('IP地址:', addr.address);

  }

 }

}

该程序遍历了所有的网络接口,并过滤掉了 IPv6 地址和本地回环地址,输出了所有有效的 IPv4 地址。

2. 使用dns模块

另外一个常用方法是使用dns模块的lookup方法获取本机的IP地址。


const dns = require('dns');

dns.lookup(require('os').hostname(), function (err, addr, fam) {

 console.log('IP地址:', addr);

})

该程序使用 hostname() 方法获取主机名,并将其传递给 lookup() 方法进行查找。在回调函数中,如果没有发生错误,则输出获取到的 IP 地址。

综上所述,以上两种方法都可以很容易地获取本机的 IP 地址。在不同的应用场景中,可以根据需要灵活选择合适的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复