JavaScript - Как увеличить количество - PullRequest
0 голосов
/ 01 июня 2018

когда я даю переменную, которая является IP (10.31.68.0/22) с текущим ниже сценарием, он вернет Выходные данные: 10.31.68.1 - 10.31.68.10

var network = '10.31.68.0/22';
var IPstart = network.toString().substring(0,network.lastIndexOf('.')) + ".1";                      
var IPend = network.toString().substring(0,network.lastIndexOf('.')) + ".10";               
var excludename = IPstart+"-"+IPend;

Я ищу что-то (вывод), как показано ниже.68 заполнитель должен увеличиться на +1, как показано ниже.

10.31.68.1 - 10.31.68.10

10.31.69.1 - 10.31.69.10

10.31.70.1 - 10.31.70.10

10.31.71.1 - 10.31.71.10

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Это должно сделать:

/* Remove the slash */
let rawIp = "10.31.68.1/22";
let rawIpParts = rawIp.split("/");

/* Split the new ip */
let ip = rawIpParts[0];
let ipParts = ip.split(".")

/* Append 0 */
ipParts[3] = ipParts[3].concat("0");

/* Output Array */
let output = []

/* Loop and increment */
for(let index = 0; index <= 4; index++) {
  ipParts[2] = 1 + +ipParts[2];
  output.push(ipParts.join("."));
}

/* Print */
console.log(output);

Надеюсь, это поможет!

0 голосов
/ 01 июня 2018

Вам нужно разделить и объединить значения с помощью цикла

var network = '10.31.68.0/22';
    var IPstart = network.toString().substring(0,network.lastIndexOf('.')) + ".1";
    var IPend = network.toString().substring(0,network.lastIndexOf('.')) + ".10";
    var excludename = IPstart+"-"+IPend;
    var upToNumber=4;
    for(var i=0;i<upToNumber;i++){
        var res_ipstart = IPstart.split(".");
    res_ipstart[2]=parseInt(res_ipstart[2]) + i;
    var ip_start = res_ipstart.join(".");

        var res_ipend = IPend.split(".");
    res_ipend[2]=parseInt(res_ipend[2]) + i;
    var ip_end = res_ipend.join(".");

    var output=ip_start+"-"+ip_end;
    console.log(output);
    }
...