Banda su router

by Alcarin

HTML

<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
<form onsubmit="return false;">
  <!-- Form Name -->
  <legend>Configurazione QoS</legend>

  <div class="form-row">
    <div class="form-group col-md-10">
      <label for="nome-linea">Nome Linea</label>
      <input id="nome-linea" name="nome-linea" placeholder="NEXTOLOGIES" class="form-control input-md" type="text">
    </div>

    <div class="form-group col-md-2">
      <label for="banda">Banda</label>
      <div class="input-group">
        <input id="banda" name="banda" class="form-control" placeholder="" type="text">
        <span class="input-group-addon">Mbps</span>
      </div>
    </div>

  </div>

  <div class="form-row">
    <div class="form-group col-md-12">
      <label for="descrizione">Descrizione</label>
      <input id="descrizione" name="descrizione" placeholder="S0505I0109(xxx)-DESCRIZIONE" class="form-control input-md" type="text">
    </div>
  </div>
  <!-- Appended Input-->

  <!-- Button Drop Down -->
  <div id="ip" class="form-row">
    <div class="form-group col-md-12">
      <label for="public-IP">Public IPs</label>
      <div class="input-group">
        <input id="public-IP" name="Public IPs" class="form-control" placeholder="0.0.0.0" type="text">
        <div class="input-group-btn">
          <button id="subnet" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
          Subnet
          <span class="caret"></span>
        </button>
          <ul class="dropdown-menu pull-right">
            <li><a href="#">255.255.255.255(/32)</a></li>
            <li><a href="#">255.255.255.254(/31)</a></li>
            <li><a href="#">255.255.255.252(/30)</a></li>
            <li><a href="#">255.255.255.248(/29)</a></li>
            <li><a href="#">255.255.255.240(/28)</a></li>
            <li><a...

JavaScript

$("div#ip ul li a").click(function() {
  $("div#ip ul li").removeClass("active");
  $(this).parent().addClass("active");
  $("div#ip button#subnet").html($(this).text() + ' <span class="caret"></span>')
});
$("div#ip button#add-subnet").click(function() {
  $("ul#lista-subnet").append('<li class="list-group-item">' + $("div#ip input").val() + " " + $("div#ip ul li.active").text() + ' <button type="button" class="close" aria-label="Close"><span aria-hidden="true">&times;</span></button></li>');
  $("ul#lista-subnet li button.close").unbind('click.ip').bind('click.ip', function() {
    $(this).parent().remove()
  })
});
var mask_conv = [];
mask_conv[16] = '0.0.255.255';
mask_conv[17] = '0.0.127.255';
mask_conv[18] = '0.0.63.255';
mask_conv[19] = '0.0.31.255';
mask_conv[20] = '0.0.15.255';
mask_conv[21] = '0.0.7.255';
mask_conv[22] = '0.0.3.255';
mask_conv[23] = '0.0.1.255';
mask_conv[24] = '0.0.0.255';
mask_conv[25] = '0.0.0.127';
mask_conv[26] = '0.0.0.63';
mask_conv[27] = '0.0.0.31';
mask_conv[28] = '0.0.0.15';
mask_conv[29] = '0.0.0.7';
mask_conv[30] = '0.0.0.3';
mask_conv[31] = '0.0.0.1';
mask_conv[32] = '0.0.0.0';

$("button#genera-configurazione").click(function() {
  var configurazione = "";
  var nome = $("input#nome-linea").val();
  var descrizione = $("input#descrizione").val();
  var banda = parseFloat($("input#banda").val()) * 0.97 * 1000000;
  var al_in = "";
  var al_out = "";
  var subnet_mask = new RegExp(/\/(\d{2})/);
  var subnet_ip = new RegExp(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/);
  $("ul#lista-subnet li").each(function() {
    var testo = $(this).text();
    var ip = subnet_ip.exec(testo);
    ip = ip[0];
    var mask = subnet_mask.exec(testo);
    mask = parseInt(mask[1]);
    if (mask == 32) {
      al_in += "permit ip host any " + ip + "\n";
      al_out += "permit ip host " + ip + " any \n"
    } else {
      var wildcard = mask_conv[mask];
      al_in += "permit ip any " + ip + " " + wildcard + "\n";
      al_out += "permit ip " + ip + "...