Alors disons que j'ai var testIP = '93.174.93.145';
Perdre un peu lors de la conversion en JavaScript?
Et je joue des méthodes suivantes:
function ipToBin(ip) {
var block = ip.split('.');
var res = 0;
res += block[0] << 24;
res += block[1] << 16;
res += block[2] << 8;
res += block[3] << 0;
bin = res.toString(2);
console.log('\n to bin: ', bin);
console.log(bin.length);
return bin;
}
function binToIP(bin) {
var block1 = (bin.split(0, 8));
block1 = parseInt(block1, 2);
block1 = (block1 >> 0) & 255;
var block2 = bin.split(9, 8);
block2 = parseInt(block2, 2);
block2 = (block2 >> 8) & 255;
var block3 = bin.split(17, 8);
block3 = parseInt(block3, 2);
block3 = (block3 >> 16) & 255;
var block4 = bin.split(25, 8);
block4 = parseInt(block4, 2);
block4 = (block4 >> 24) & 255;
console.log((block4 + '.' + block3 + '.' + block2 + '.' + block1).toString());
}
Maintenant, la chose est que la longueur de chaîne binaire est seulement 31 et quand reconverti en IP, il renvoie 93.174.93.1
. Est-ce similaire à this post? Où se trouve exactement le problème auquel je suis confronté?