socketio ip:为什么ipfix变量/用户名没有改变

时间:2018-04-09 21:50:12

标签: socket.io

io.on('connection', function(socket){
var ip = socket.request.connection.remoteAddress;
var ipfix = ip;    // made a copy of ip cause thought it may be a constant
for (var g = 0; g < ipfix.length; g++)
    {
        if (ipfix[g] == 'f' || ipfix[g] == ':')
            {
                ipfix[g] = '';
                console.log("changed to nothing"); // logs to console
            }
        if (ipfix[g] == '.')
            {
                ipfix[g] = '0';
                console.log("changed to zero"); // logs to console
            }
    }
var username = 'User#' + ipfix[9] + ipfix[8] + ipfix[11] + ipfix[13];
console.log(username); // Logs, no change to dots / f / :
}

这样做的目的是去除点,冒号和&#39; f&#39;从ip
对我而言,这似乎是完全合理的,但每次我运行它时,它都会输出用户名而不会改变IP中看到的值,即使是将IP复制到ipfix并迭代完毕。

1 个答案:

答案 0 :(得分:0)

我发现了一个修复,与C不同,javascript字符串是不可变的 - 解决方案是使用ipfix = ip.split('');&lt; - 变成一个字符数组。