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...