Vielen Dank,
leider klappt das bei mir nicht.
{
"elements":
[
{"type": "Label", "label": "Nmap v1.0, zum Auflisten der Hosts in meinem Netzwerk."},
{"type": "Label", "label": " Nmap kann entweder auf dem <lokalen Rechner>, oder einem <Remote Host> ausgeführt werden."},
{"type": "Label", "label": " Bei Ausführung auf einem Remotehost muss vorab die <SSH Public Key Authentifizierung> konfiguriert werden! [ssh-copy-id]"},
{"type": "Select","name": "Execute","caption": "Ausführen auf",
"options":
[
{ "caption": "Localhost", "value": 0, "onChange": "NMAP_OnChangeLocalhost($id);" },
{ "caption": "Remotehost", "value": 1, "onChange": "NMAP_OnChangeRemotehost($id);" }
]
},
{"type": "ValidationTextBox","name": "Subnet","caption": "Subnet (CIDR Format: 192.168.1.0/24)"},
{"type": "ValidationTextBox","name": "NmapPath","caption": "Path (/usr/bin/nmap)"},
{"type": "ValidationTextBox","name": "SSH_Host","caption": "SSH Remotehost (IP or DNS-Name)"},
{"type": "ValidationTextBox","name": "SSH_User","caption": "SSH User (root)"}
]
}
<?php
// Klassendefinition
class Nmap extends IPSModule {
// Überschreibt die interne IPS_Create($id) Funktion
public function Create() {
// Diese Zeile nicht löschen.
parent::Create();
$this->RegisterPropertyString("Subnet", "192.168.1.0/24");
$this->RegisterPropertyInteger("Execute", 0);
$this->RegisterPropertyString("NmapPath", "/usr/bin/nmap");
$this->RegisterPropertyString("SSH_Host", "192.168.1.10");
$this->RegisterPropertyString("SSH_User", "root");
}
// Überschreibt die intere IPS_ApplyChanges($id) Funktion
public function ApplyChanges() {
// Diese Zeile nicht löschen
parent::ApplyChanges();
}
/**
* Die folgenden Funktionen stehen automatisch zur Verfügung, wenn das Modul über die "Module Control" eingefügt wurden.
* Die Funktionen werden, mit dem selbst eingerichteten Prefix, in PHP und JSON-RPC wiefolgt zur Verfügung gestellt:
*
* ABC_MeineErsteEigeneFunktion($id);
*
*/
public function OnChangeLocalhost() {
echo "!";
$this->UpdateFormField("Subnet", "enabled", true);
$this->UpdateFormField("NmapPath", "enabled", true);
$this->UpdateFormField("SSH_Host", "enabled", false);
$this->UpdateFormField("SSH_User", "enabled", false);
}
public function OnChangeRemotehost() {
echo "!";
$this->UpdateFormField("Subnet", "enabled", true);
$this->UpdateFormField("NmapPath", "enabled", false);
$this->UpdateFormField("SSH_Host", "enabled", true);
$this->UpdateFormField("SSH_User", "enabled", true);
}
}
Wenn ich den Select in den Actions Teil nehme sind alle anderen Elemente deaktiviert die Funktion in module.php wird jedoch trotzdem nicht ausgeführt, bekomme keine Ausgabe im Log, und es passiert auch sonst nichts…
Guten Rutsch