Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Deutsch

Beschreibung:

Dieses Skript, das einem Newtork zugewiesen ist, überschreibt die SSID und den Preshared Key eines bestimmten WiFi-Netzwerks mit den Variablen

  • context.vars.SSID
  • context.vars.WPAKey

Das ausgewählte WiFi, das außer Betrieb gesetzt wird, ist SSID_TO_CHANGE.

Liste der verwendeten Variablen:

VariableBeschreibung




Add-in Code:

/**


 *

@param

{Config}

config


 *

@param

{Context}

context


 *

Do

not

edit

this

comment

or

parameter

types.

Required

for

code

suggestions


*/


exports.main

=

function

(config,

context)

{



    // Step 1: obtain _single_ ssid reference
    var ssid = context.network.ssids["SSID_TO_CHANGE"];

    if (!ssid) {
        config.abort("SSID missing");
    }

    if (!context.vars.SSID) {
        config.abort("variable SSID not set");
    }

    if (!context.vars.WPAKey) {
        config.abort("variable WPAKey not set");
    }


    var wlanTable = config.getTableByOid("13.2.20.1");
    var wlanPostfix = context.network.configNameLong + "_" + ssid.name;

    // Step 2: create iterable list of wifi networks
    var rows = wlanTable.getRows();
    var list = [];
    for (var i = 0; i < rows.length; i++) {
        list.push(rows[i]);
    }

    var encrRef = "ENCRREF";

    // Step 3: find matching row that ends with context.network.configNameLong + "_" + ssid.name
    list.filter(function (row) {
        return row.getByOid("1").endsWith(wlanPostfix);
    }).forEach(function (wlanRow) {
        // Step 4: change all matching row (by definition this is only one)
        wlanRow.setByOid(2, context.vars.SSID);
        wlanRow.setByOid(100, context.vars.WPAKey);
        wlanRow.setByOid(102, encrRef);
        wlanTable.addOrMerge(wlanRow);

        var secParamsTable = config.getTableByOid("13.2.20.3");
        var secParamsRow = secParamsTable.createNewRow();
        secParamsRow.setByOid(1, encrRef);
        secParamsRow.setByOid(2, "1");
        secParamsRow.setByOid(4, "32");
        secParamsRow.setByOid(9, "6");
        secParamsRow.setByOid(12, "1");
        secParamsRow.setByOid(13, "1");
        secParamsRow.setByOid(14, "0");
        secParamsRow.setByOid(11, "0");
        secParamsRow.setByOid(16, "1");
        secParamsRow.setByOid(17, "0");
        secParamsRow.setByOid(19, "0");
        secParamsRow.setByOid(26, "524288");
        secParamsRow.setByOid(20, "");
        secParamsRow.setByOid(21, "");
        secParamsTable.addOrMerge(secParamsRow);
    });
};

Add-in als JSON-Datei:

View file
namessid_preshared_key_lx.json
height150

...

Englisch

Description:

This script, assigned to a newtork, overrides a specific WiFi networks SSID and Preshared Key with the variables

  • context.vars.SSID
  • context.vars.WPAKey

The selected WiFi that will be overridden is SSID_TO_CHANGE.

List of used variables:

VariableDescription




Add-

In Code

in code:

/**


 *

@param

{Config}

config


 *

@param

{Context}

context


 *

Do

not

edit

this

comment

or

parameter

types.

Required

for

code

suggestions


*/


exports.main

=

function

(config,

context)

{



 
  
// Step 1: obtain _single_ ssid reference

 
  var ssid = context.network.ssids["SSID_TO_CHANGE"];


    if (!ssid) {

     
  
config.abort("SSID missing");

   
}


   
if (!context.vars.SSID) {

     
  config.abort("variable SSID not set");

 
  }


    if (!context.vars.WPAKey) {

       
config.abort("variable WPAKey not set");

 
  }



    var wlanTable = config.getTableByOid("13.2.20.1");

 
  var wlanPostfix = context.network.configNameLong + "_" + ssid.name;


    // Step 2: create iterable list of wifi networks

 
  var rows = wlanTable.getRows();

 
  var list = [];

   
for (var i = 0; i < rows.length; i++) {

       
list.push(rows[i]);

 
  }


    var encrRef = "ENCRREF";


    // Step 3: find matching row that ends with context.network.configNameLong + "_" + ssid.name

   
list.filter(function (row) {

     
  return row.getByOid("1").endsWith(wlanPostfix);

   
}).forEach(function (wlanRow) {

     
  
// Step 4: change all matching row (by definition this is only one)

     
  wlanRow.setByOid(2, context.vars.SSID);

     
  
wlanRow.setByOid(100, context.vars.WPAKey);

     
  wlanRow.setByOid(102, encrRef);

     
  
wlanTable.addOrMerge(wlanRow);


     
  var secParamsTable = config.getTableByOid("13.2.20.3");

       
var secParamsRow = secParamsTable.createNewRow();

     
  secParamsRow.setByOid(1, encrRef);

     
  secParamsRow.setByOid(2, "1");

     
  
secParamsRow.setByOid(4, "32");

       
secParamsRow.setByOid(9, "6");

     
  
secParamsRow.setByOid(12, "1");

     
  secParamsRow.setByOid(13, "1");

     
  
secParamsRow.setByOid(14, "0");

     
  secParamsRow.setByOid(11, "0");

     
  
secParamsRow.setByOid(16, "1");

     
  secParamsRow.setByOid(17, "0");

       
secParamsRow.setByOid(19, "0");

     
  
secParamsRow.setByOid(26, "524288");

     
  secParamsRow.setByOid(20, "");

     
  
secParamsRow.setByOid(21, "");

       
secParamsTable.addOrMerge(secParamsRow);

   
});

};
Addin

Add-in as JSON file:

View file
namessid_preshared_key_lx.json
height150

...