Johnhhorton
12/5/2015 - 10:02 PM

Javascript: Converts nmap ip range to array of IPs /24 only

Javascript: Converts nmap ip range to array of IPs /24 only

private rangeFormatter(range){
            var outputRange = [];
            if (!Array.isArray(range)) {
                range = range.split(' ');
            }
            
            for (var i = 0; i < range.length; i++) {
                var input = range[i];
                var temprange = range[i]; 
                if(countCharacterOccurence(input, ".") === 3
                && !input.match(/^[a-zA-Z]+$/)
                && input.match(new RegExp("-","g")).length === 1
                ){
                    var firstIP = input.slice(0, input.indexOf("-"));
                    var network;
                    var lastNumber = input.slice(input.indexOf("-")+1);
                    var firstNumber;
                    var newRange =[];
                    for (var j = firstIP.length -1; j > -1; j--) {
                        if(firstIP.charAt(j) === "."){
                            firstNumber = firstIP.slice(j+1);
                            network = firstIP.slice(0,j+1);
                            break;
                        }
                    }
                    for (var iter = firstNumber; iter <= lastNumber; iter++) {
                        newRange.push(network + iter);
                    }
                    //replace the range/host string with array
                    temprange = newRange;
                }
                outputRange = outputRange.concat(temprange);
            }
            function countCharacterOccurence(input, character){
                var num = 0;
                for (var k = 0; k < input.length; k++) {
                    if(input.charAt(k) === character){
                        num++;
                    }
                }
                return num;
            }
            return outputRange;
        }