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并迭代完毕。
答案 0 :(得分:0)
我发现了一个修复,与C不同,javascript字符串是不可变的 - 解决方案是使用ipfix = ip.split('');
&lt; - 变成一个字符数组。