将req.connection.remoteAddress转换为不包括:ffff

时间:2017-08-01 16:34:01

标签: node.js express

我有节点js应用程序,我使用以下代码捕获IP地址:

  var ip = req.headers['x-forwarded-for'] ||  
  req.connection.remoteAddress || 

这里,req.connection.remoteAddress在实际IP之前附加:: ffff:。 是否有一种标准的方法,只有在没有:: ffff之前返回的IP:除了剥离它之外?是否有一些API或某些东西可以调用来进行转换?

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式仅捕获::ffff:之后的内容:

var reg = /([^f:]+)/;
var str = '::ffff:127.0.0.1';
    
alert(reg.exec(str)[0]);

答案 1 :(得分:0)

您可以使用ipaddr.js

const ipaddr = require('ipaddr.js');

let mappedAddr = '::ffff:127.0.0.1';
let ipv4Addr   = ipaddr.process(mappedAddr).toString(); // -> 127.0.0.1