说到 node.js,我们不得不提到 npm,npm 包的使用,可以让我们在前端开发中更加便捷。其中,一个非常方便的 npm 包就是 say_ip
,它能够帮助我们快速获取本机 IP 并输出,下面来详细介绍一下如何使用它。
安装
使用 npm 包管理器安装 say_ip
。
npm install say_ip
使用
在需要获取 IP 的地方,引入并调用 say_ip
即可。
const sayIP = require('say_ip') console.log(sayIP()) // 输出本机 IP
深入理解
say_ip
实际上是通过获取本机的网卡信息,来获取 IP 地址的。如下所示,网卡信息以数组的形式返回。
const os = require('os') console.log(os.networkInterfaces())
其中 lo0
是本地设备,en0
(Mac)、 eth0
(Linux)是网络设备。say_ip
就是根据这个原理来获取 IP 地址的。
在获取网卡信息后,say_ip
会对每一张网卡进行遍历,找到第一个没有 internal
、IPv6
和 127.0.0.1
的 IPv4 地址,再将它输出。代码如下所示:
-- -------------------- ---- ------- -------- ------- - ----- ---------- - ---------------------- ------ --------------------------------------- ----- -- - ----- ------ - --------------- -- ---------- --- ------ -- -------------- -- -------- ------ -------------- ------ ---- -- --- - -------------- - -----
指导意义
say_ip
虽然只是一个小小的 npm 包,但它背后却隐藏着很多知识点,如 node.js 的模块系统、os 模块、Reduce 方法等等。乍一看,这些可能并没有什么联系,但结合在一起,就形成了我们所熟知的 node.js 生态。
正是这些小而精致的 npm 包,才是构成 node.js 强大生态的基石。在使用这些 npm 包的过程中,我们也会逐渐了解其背后的原理,从而深入地理解 node.js。
示例代码
const sayIP = require('say_ip') console.log(`本机 IP 地址为: ${sayIP()}`)
输出:本机 IP 地址为:192.168.1.1
。其中 IP 地址不是固定的,根据实际本机 IP 而定。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005728281e8991b448e8b43