返回
JavaScript/Node.js获取本机IP地址:多种方法轻松搞定!
前端
2023-11-29 18:11:09
为什么要获取本机IP地址?
获取本机IP地址在许多情况下都很有用,比如:
- 搭建本地服务器时,需要知道本机IP地址才能让其他设备访问该服务器。
- 在局域网中,需要知道本机IP地址才能与其他设备进行通信。
- 需要知道公网IP地址才能访问某些网站或服务。
方法一:使用内置模块
在 Node.js 中,我们可以使用 os
模块来获取本机IP地址。该模块提供了 networkInterfaces()
方法,该方法返回一个对象,其中包含所有网络接口的信息。
const os = require('os');
const networkInterfaces = os.networkInterfaces();
console.log(networkInterfaces);
输出结果类似于:
{
"en0": [
{
"address": "192.168.1.100",
"netmask": "255.255.255.0",
"family": "IPv4",
"mac": "00:11:22:33:44:55",
"internal": false
},
{
"address": "fe80::1",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"mac": "00:11:22:33:44:55",
"internal": true
}
],
"en1": [
{
"address": "10.0.1.100",
"netmask": "255.255.255.0",
"family": "IPv4",
"mac": "00:11:22:33:44:55",
"internal": true
},
{
"address": "fe80::2",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"mac": "00:11:22:33:44:55",
"internal": true
}
]
}
从这个输出结果中,我们可以看到本机的所有网络接口及其对应的IP地址。
方法二:使用第三方库
除了使用内置模块,我们还可以使用第三方库来获取本机IP地址。一个流行的第三方库是 ip
库。
const ip = require('ip');
console.log(ip.address());
输出结果类似于:
192.168.1.100
方法三:使用命令行工具
我们还可以使用命令行工具来获取本机IP地址。在 Windows 系统中,我们可以使用 ipconfig
命令,在 macOS 和 Linux 系统中,我们可以使用 ifconfig
命令。
ipconfig
或者
ifconfig
输出结果类似于:
Windows IP Configuration
Ethernet adapter Ethernet0:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 192.168.1.100
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
或者
en0: flags=8863<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:11:22:33:44:55
inet6 fe80::1%en0 prefixlen 64 scopeid 0x1
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
从这个输出结果中,我们可以看到本机的IP地址。
总结
以上是获取本机IP地址的几种方法。您可以根据自己的需要选择合适的方法。