在 Node.js 中获取 IP 地址可以通过多种方式实现:
一、获取本地服务器的 IP 地址
os
模块const os = require('os');
const networkInterfaces = os.networkInterfaces();
for (const key in networkInterfaces) {
const interfaces = networkInterfaces[key];
for (const iface of interfaces) {
if (iface.family === 'IPv4' && !iface.internal) {
console.log(`本地 IP 地址: ${iface.address}`);
}
}
}
优势:
类型:
应用场景:
net
模块const net = require('net');
const server = net.createServer();
server.once('listening', () => {
const address = server.address();
console.log(`本地 IP 地址: ${address.address}`);
server.close();
});
server.listen(0);
优势:
类型:
应用场景:
二、获取客户端的 IP 地址
在 Web 服务器中,如果使用 Express 框架,可以通过请求对象获取:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
const clientIp = req.ip;
console.log(`客户端 IP 地址: ${clientIp}`);
res.send('IP 获取成功');
});
app.listen(3000);
优势:
类型:
应用场景:
可能出现的问题及解决方法:
X-Forwarded-For
,并进行适当的处理。领取专属 10元无门槛券
手把手带您无忧上云