2017-08-01 106 views
0

我有,我现在用的是下面这段代码捕获IP地址的节点JS应用:转换req.connection.remoteAddress不包括:FFFF

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

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

回答

0

您可以使用正则表达式来仅捕捉什么是后::ffff:

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

+0

我的问题是,是否有任何其他标准的方法来转换IPAddress或剥离/正则表达式唯一的方法来做到这一点? – user1892775

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