IP Range to CIDR
by toubia95
CSS
/*
Modifier le code pour avoir toutes les variantes !
Travailler à partir d'un tableau :
["123.23.253-255.25-26"]
devient
[
"123.23.253.25-123.23.253.26",
"123.23.254.25-123.23.254.26",
"123.23.255.25-123.23.255.26"
]
*/
JavaScript
var range = "194.199.121-130.0-255";
// CONVERT !AAA.BBB.
range = range.replace(/^!([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])\.$/gi,"$1.$2.*.*");
// CONVERT *
range = range.replace(/\*/gi,"0-255");
// CONVERT AAA.BBB.CCC.DDD-DDD
range = range.replace(/^([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])-([1-2]?[0-9]?[0-9])$/gi,"$1.$2.$3.$4-$1.$2.$3.$5");
// CONVERT AAA.BBB.CCC-CCC.0-255
range = range.replace(/^([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])-([1-2]?[0-9]?[0-9])\.0-255$/gi,"$1.$2.$3.0-$1.$2.$4.255");
// CONVERT AAA.BBB.CCC-CCC.DDD-DDD
if (range.match(/^([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])-([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])-([1-2]?[0-9]?[0-9])$/gi)) {
alert("Modifier le code pour avoir toutes les variantes !\n travailler à partir d'un tableau \n[\"123.23.253-255.25-26\"] devient \n[\n\"123.23.253.25-123.23.253.26\",\n\"123.23.254.25-123.23.254.26\",\n\"123.23.255.25-123.23.255.26\"\n]");
}
range = range.replace(/^([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])-([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])-([1-2]?[0-9]?[0-9])$/gi,"$1.$2.$3.$5-$1.$2.$4.$6");
// CONVERT AAA.BBB.CCC.DDD-DDD
range = range.replace(/^([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])\.([1-2]?[0-9]?[0-9])$/gi,"$1.$2.$3.$4-$1.$2.$3.$4");
var range = range.split("-");
var ipA = range[0];
var ipB = range[1];
function ipToBin(ip) {
ip = ip.split(".");
var bintab = [];
ip.forEach((item) => {
let temp = parseInt(item, 10).toString(2);
for (i=0;temp.length < 8;i++) {
temp = "0"+temp;
}
bintab.push(temp);
});
return bintab.join(".");
}
document.write("01. Adresses IPv4<br>---<br>");
document.write(ipA+"<br>");
document.write(ipB+"<br><br>");
//document.write("02. En binaire<br>---<br>");
var ip1 = ipToBin(ipA);
var ip2 = ipToBin(ipB);
//document.write(ip1+"<br>");
//document.write(ip2+"<br><br>");
//document.write("03. Sans les points<br>---<br>");
var...