1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function format(num, dec1, dec2, minlen){
    var num1 = new Number(parseInt(num, dec1)).toString(dec2);;
    while(num1.length < minlen) num1 = "0" + num1;
    return num1;
}

function ipaddr2mask(ipaddr){
    var ad = ipaddr.split(".");
    var str = "";
    for(var i = 0; i < ad.length; i++){
        str += format(ad[i],10,2,8);
    }
    for(var i = str.length-1; i > 0 ; i--){
        if(str.charAt(i)!=0){return i+1;}
    }
    return 0;
}

function mask2ipaddr(mask){
    var m1 = format(mask,10,10,1);
    var str = "";
    while(str.length < 32){ str+= (str.length < m1) ? "1" : "0"; }
    var ipaddr = "";
    for(var i = 0; i < 4; i++){
        if(i > 0){ ipaddr+="."; }
        ipaddr+=format(str.substr(i*8, 8),2,10,1);
    }
    return ipaddr;
}