怎样用别人的网站做修改病句,公司制作官网,wordpress 摘要 格式,WordPress数据库防注入一、问题描述
在做登录日志的时候想要获取客户端的ip, 网上查了一下 通过 req.headers[x-forwarded-for] || req.connection.remoteAddress; 获取#xff0c; 结果获取了之后不管是开发环境#xff0c;还是生产环境获取到的一直都是 127.0.0.1#xff0c;这是因为在配置N…一、问题描述
在做登录日志的时候想要获取客户端的ip, 网上查了一下 通过 req.headers[x-forwarded-for] || req.connection.remoteAddress; 获取 结果获取了之后不管是开发环境还是生产环境获取到的一直都是 127.0.0.1这是因为在配置Nginx的时候配置了如下框传来的内容 这样Nginx默认将自己的地址设置为客户端的地址。 二、解决办法
给Nginx配置加上 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 这样才能用 req.headers[x-forwarded-for] || req.connection.remoteAddress; 获取到真实 ip 如下图 三、附上我的获取的代码
关键如下
try {let ip req.headers[x-forwarded-for] || req.connection.remoteAddress || Unknown;if (ip.includes(:)) {ip ip.includes(:) ? ip.split(:).slice(-1)[0] : ip;}const city new IP2Region().search(ip) ? new IP2Region().search(ip).city new IP2Region().search(ip).isp : ;const os getOS(req.headers[user-agent]);const browser req.headers[user-agent].split( )[0];const sql INSERT INTO logs (username, ip, city, browser, os, create_time) VALUES (?,?,?,?,?,?);const params [user.username, ip, city, browser, os, moment().format(YYYY-MM-DD HH:mm:ss)];db.queryAsync(sql, params).then(_ {res.send({code: 200,msg: 登录成功,token});});
} catch (error) {console.log(-------- logs error --------, error);res.send({code: 200,msg: error,token});