在许多前端开发项目中,时常会需要获取本地 IP 地址。在 Node.js 环境下,可以使用 os.networkInterfaces()
方法来获取本地 IP 地址,但这种方式较为繁琐。而 npm 中提供了许多实用的包来简化获取本地 IP 地址的过程,其中一个比较常用的是 print-ip
。
安装并使用 print-ip
使用 npm 安装 print-ip
:
npm install print-ip
在需要获取本地 IP 的 JavaScript 文件中,引入 print-ip
:
const printIp = require('print-ip');
接下来就可以调用 printIp()
方法获取本地 IP 地址,例如:
const ip = printIp(); console.log('本地 IP 地址为:', ip);
运行结果类似于:
本地 IP 地址为: 192.0.2.1
如果本机有多个 IP 地址,可以传入选项 all
来获取所有 IP 地址的数组:
const ips = printIp({ all: true }); console.log('本机所有 IP 地址为:', ips);
源码分析
print-ip
的源码实现很简单,代码如下:
-- -------------------- ---- ------- ----- -- - -------------- -------- --------------- - --- - ----- - --- - - -------- ----- ---------- - ----------------------- --- --- - --- -------------------------------------- -- - -------------------- -- - -- --------------- --- ------- - -------------------------- - --- --- -- ------ - ------ ------- - ------ ---- - -------------- - --------
该模块导出了一个函数,默认接受一个选项对象作为参数,可以指定是否获取本机所有 IP 地址。函数中首先通过 os.networkInterfaces()
方法获取到本机所有网络接口信息,然后遍历每个接口信息,将 IPv4 地址加入到一个数组中。如果选项对象中包含 all
属性,则返回整个数组,否则只返回第一个 IP 地址。
使用指导
使用 print-ip
可以更加方便地获取本地 IP 地址,并且可以选择获取所有 IP 地址。在实际项目中,可以将其封装成一个独立的模块或函数,方便复用。不过需要注意的是,本地 IP 地址可能会因为网络环境等因素而变化,因此要保证在合适的时机重新获取 IP 地址,而不是始终使用一开始获取的 IP 地址。
示例代码可在 GitHub 上查看:https://github.com/oceanpad/print-ip-example
总结
print-ip
是一个非常实用的 npm 包,可以方便快捷地获取本地 IP 地址。在实际开发中,建议将其封装成一个独立的模块或函数,方便复用。需要注意的是,本地 IP 地址可能会因为网络环境等因素而变化,因此要保证在合适的时机重新获取 IP 地址,而不是始终使用一开始获取的 IP 地址。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055c6181e8991b448d9e67