Node.js
//传入请求HttpRequest function getClientIp(req) { return req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress; }
Express
//express框架则简单许多 req.ip
意外收获
发现这两种方式获取的ip地址都带有前缀,不知为何,看了眼Express request.js源码,没找到不对的地方。所以用正则表达式处理了下
req.ip.match(/d+.d+.d+.d+/)