使用nodejs来获取客户端ip
遇到了一个需求,就是服务端让前端自己获取ip,当时就是各种百度,发现通过node来获取是可以的,但是也是node在前端项目内起了一个服务(我起的是express服务),最后证实,服务端自己就可以获取客户端IP。。。
但是我还是写了一个方法来获取,网上有很多方法,就是一个函数的问题,很简单。
代码如下:
var express = require('express') var app = express(); //发送请求,获取客户端ip app.get('https://www.jb51.net/', function (req, res) { var clientIp = getIp(req) console.log('客户端ip',clientIp) res.send('Hello World'); }) //通过req的hearers来获取客户端ip var getIp = function(req) { var ip = req.headers['x-real-ip'] || req.headers['x-forwarded-for'] || req.connection.remoteAddres || req.socket.remoteAddress || ''; if(ip.split(',').length>0){ ip = ip.split(',')[0]; } return ip; }; // 指定ipv4格式 var server = app.listen(8081, '0.0.0.0',function () { var host = server.address().address var port = server.address().port console.log('服务启动...') })