Get Current IP Address

JavaScript

在 Node.js 中,可以通过 os 模块的 networkInterfaces API 来获取当前机器的 IP 数据。返回的结果类似于 ifconfigipconfig 命令。

以获取当前主机的 IPv4 地址为例,可以写类似如下的代码:

function getIPAddress() {
  const interfaces = require('os').networkInterfaces();
  const results = Object.values(interfaces)
    .flat()
    .filter(interface => interface.family === 'IPv4')
    .filter(interface => !interface.internal);
  if (results.length === 0) return null;
  return results[0].address;
}

简单的说明如下:

  • internal 用于表示当前的地址是否是本地回环地址或是其他外部无法访问的地址(例:127.0.0.1);
  • family 用于表示当前地址的类型,将会是 IPv4IPv6 中的一种;
  • address 用于表示当前的 IP 地址;
  • os.networkInterfaces 的返回是一个对象,key 用于表示 network interface,比如常见的 lo 或者 eth0 等。

更多的返回数据及解释,可以参考官方文档