JavaScript: convertire indirizzi IPv4 in numeri interi e viceversa

Short link

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'