在前端项目中,经常会涉及到获取本地 IP 地址的需求,比如在开发局域网内的服务或是用于展示用户所在的地理位置等等。在这种情况下,npm 包 network-address 是一个非常方便实用的工具。
安装
在终端中执行以下命令安装 network-address:
npm install network-address
API
network-address 包提供了两个 API:
ipv4([interface])
获取本地 IPv4 地址。
参数:
interface
:可选参数,用于指定网络接口,如eth0
。若留空,则使用默认接口en0
。
示例:
const { ipv4 } = require('network-address'); console.log(ipv4()); // '192.168.1.102' console.log(ipv4('eth0')); // '192.168.2.51'
ipv6([interface])
获取本地 IPv6 地址。
参数:
interface
:可选参数,用于指定网络接口,如eth0
。若留空,则使用默认接口en0
。
示例:
const { ipv6 } = require('network-address'); console.log(ipv6()); // 'fe80::1c41:ffb8:91cf:51f0' console.log(ipv6('eth0')); // 'fe80::aede:48ff:fee3:c8ce'
实现原理
network-address 包的实现原理是通过操作系统提供的接口获取本地网络信息。在 Unix 系统中,使用了 ifconfig
命令获取网络信息;在 Windows 系统中,则使用了 netstat
命令获取网络信息。
注意事项
- 在 Windows 系统下,网络接口名称和 Unix 系统下不同,需要使用正确的接口名称。
- 直接通过浏览器访问此 API,可能会暴露本地 IP 地址。需注意保护用户隐私。
总结
npm 包 network-address 提供了方便实用的 API,使用户可以轻松获取本地 IP 地址。它的实现原理也为我们提供了一个参考,让我们了解了操作系统提供的网络信息接口。在实际应用中,我们需要注意保护用户隐私,以及在 Windows 系统中使用正确的接口名称。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/75079