您的位置:首页 > 数据库 > Mongodb

nodejs express 获取客户端的真实ip和域名 存储到mongodb

2018-01-15 19:24 661 查看
2018年1月15日  欢迎观阅Altaba的博客

本人在开发过程中,遇到需要利用nodejs +express + mongodb 去存储数据,数据包括获取请求者的真实ip和域名,从没玩过MongoDB,和很少开发nodejs项目的我为了实现项目需求,自己一个人捣鼓,这其中辛苦可能也只有小公司程序员才能领会到,好,吐槽到此为止,下面为大家介绍怎么通过nodejs  express框架去获取到真实的客户端ip和域名。

1:获取客户端的真实IP

let getClientIp = function (req) {
return req.headers['x-forwarded-for'] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress || '';
};

console.log(getClientIp(req));
let ip = getClientIp(req).match(/\d+.\d+.\d+.\d+/);
console.log(ip);
ip = ip ? ip.join('.') : null;
console.log(ip);2:获取客户端的域名
let domain = req.headers['referer'].match(/^(\w+:\/\/)?([^\/]+)/i);
domain = domain ? domain[2].split(':')[0].split('.').slice(-2).join('.') : null;注意点:获取客户端的ip老版本有一个req.headers['X-Real-IP'] 方法,该方法有时候会获取不到或者不支持,建议不去添加到获取ip方法中,本人栽倒在这一个星期(......)
3:如果有人想了解我开发的nodejs +express + mongodb数据抓取的项目的话,记得点赞评论留下邮箱哦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息