Con JavaScript possiamo convertire indirizzi IPv4 in numeri interi e viceversa.
Possiamo usare il seguente codice:
'use strict';
const ipToLong = (ip) => {
let addr = ip.split('.');
let result = 0;
for (let i = 0; i < addr.length; i++) {
let power = 3 - i;
result += ((parseInt(addr[i], 10) % 256) * Math.pow(256,power));
}
return result;
};
const longToIp = (ip) => {
if(ip < 0 || ip > 4294967295) {
return '';
}
let out = ip;
return ((out >> 24 ) & 0xFF) + '.' +
((out >> 16 ) & 0xFF) + '.' +
((out >> 8 ) & 0xFF) + '.' +
(out & 0xFF);
};
Esempio d'uso:
'use strict';
let ipLong = ipToLong('192.168.1.1');
console.log(ipLong); // 3232235777
let longIp = longToIp(ipLong);
console.log(longIp); // '192.168.1.1'