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

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数据抓取的项目的话,记得点赞评论留下邮箱哦




  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值