NEWS
NMAP liefert im ioBroker falsches Ergebnis
-
Im Badezimmer verwende ich einen Echo, welcher mit Lichtschalter gekoppelt ist.
Ziel ist es, wenn das Badezimmerlicht angeht, daß in bestimmter Radiosender gespielt wird.Ich verwende unter ioBroker ein Javascript (von @ruhr70), um Amazon-Echo's im Netz zu prüfen, ob diese in Netzwerk verfügbar sind - in dem Script wird nmap verwendet.
Bei einem Echo (im Büro) funktioniert es auch gut, beim Echo im Badezimmer liefert nmap jedoch im ioBroker-Script ein falsches Ergebnis.
Im Terminal des ioBroker-Docker wird der gleiche Befehl abgesetzt und liefert jedoch das erwünschte Ergebnis.in den Alexa2-Objekten ist auch der Echo zu finden und kann angesteuert werden (z.B: Pause)
Hat jemand eine Idee, woran das liegen kann?
Das Ergebnis aus dem Log im ioBroker (Scripte):
13:35:02.081 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Abfrage : nmap 192.168.8.230 -sT -A -T5 --top-ports=20 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Starting Nmap 7.70 ( https://nmap.org ) at 2021-12-29 13:35 CET Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn Nmap done: 1 IP address (0 hosts up) scanned in 2.04 seconds 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Scan Amazon Echo :OG Bad: 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Alexa Echo Mac-Adresse: n.e. 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: up: false 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Latency: n.e.Das Ergebnis im Terminal:
root@buanet-iobroker:/opt/iobroker# nmap 192.168.8.230 -sT -A -T5 --top-ports=20 Starting Nmap 7.70 ( https://nmap.org ) at 2021-12-29 13:36 CET Nmap scan report for xx-xx-xx-xx-xx-xx (192.168.8.230) Host is up (0.040s latency). PORT STATE SERVICE VERSION 21/tcp filtered ftp 22/tcp filtered ssh 23/tcp filtered telnet 25/tcp filtered smtp 53/tcp filtered domain 80/tcp filtered http 110/tcp filtered pop3 111/tcp filtered rpcbind 135/tcp filtered msrpc 139/tcp filtered netbios-ssn 143/tcp filtered imap 443/tcp filtered https 445/tcp filtered microsoft-ds 993/tcp filtered imaps 995/tcp filtered pop3s 1723/tcp filtered pptp 3306/tcp filtered mysql 3389/tcp filtered ms-wbt-server 5900/tcp filtered vnc 8080/tcp filtered http-proxy MAC Address: xx-xx-xx-xx-xx-xx (Unknown) Too many fingerprints match this host to give specific OS details Network Distance: 1 hop TRACEROUTE HOP RTT ADDRESS 1 39.69 ms xx-xx-xx-xx-xx-xx (192.168.8.230) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 5.95 secondsHier das Script:
// Prüft die Verfügbarkeit eines Amazon Echos im Netz bei bekannter IP-Adresse // Rückmeldung der Prüfung etwas > 10 Sekunden // Voraussetzungen: // -------------------------- // nmap muss installiert sein // IP-Adresse in der "abfrage" anpassen var alexaName = "OG Bad"; var alexaIP = "192.168.8.230"; var logOn = true; // Logausgabe im Skript var forecreation = false; // true: Datenpunkte werden überschrieben (ween z.B. Bezeichnungen geändert wurden) var pfad = "Systeminfos.Alexa.Echo OG Badezimmer" + "."; // Pfad in dem die Datenpunkte angelegt werden // Datenpunktnamen: var idEchoUp = pfad + 'up'; var idEchoLatency = pfad + "latency"; var idEchoStatustime = pfad + "timestamp"; var idMacAddress = pfad + "mac address"; // regelmässige Wiederholungen der Abfrage var cronStr = "*/1 * * * *"; var abfrage = 'nmap '+alexaIP+' -sT -A -T5 --top-ports=20'; //var abfrage = 'nmap '+alexaIP+' -sT -A -n -T4 --top-ports=20'; // ----------------------------------------------------------------------------- createState(idEchoUp, false, forecreation, { name: 'Alexa Echo '+alexaName+' up', desc: 'Alexa Echo '+alexaName+' up', type: 'boolean', unit: '', role: 'value' }); createState(idEchoLatency, "initalisiert", forecreation, { name: 'Alexa Echo '+alexaName+' Latency', desc: 'Alexa Echo '+alexaName+' Latency', type: 'string', unit: '', role: 'value' }); createState(idEchoStatustime, now(), forecreation, { name: 'Alexa Echo '+alexaName+' letzter Status', desc: 'Alexa Echo '+alexaName+' letzter Status', type: 'string', unit: '', role: 'value' }); createState(idMacAddress, "initalisiert", forecreation, { name: 'Alexa Echo '+alexaName+' Mac Adresse', desc: 'Alexa Echo '+alexaName+' Mac Adresse', type: 'string', unit: '', role: 'value' }); // ----------------------------------------------------------------------------- function now() { return formatDate(new Date(), "hh:mm:ss, YYYY-MM-DD"); } function abfrageConsole() { exec(abfrage, function(err, stdout, stderr) { if(logOn) log("Abfrage : "+abfrage); if (err) { log("Fehler Amazon Echo Scan: " + err,"error"); return; } var out = stdout.toString(); if(logOn) log(out); if(!out || (!out.match("Host is up") && !out.match("Host seems down"))) log("Amazon Echo Scan unklares Ergebnis","warn"); var up = false; var latency = "n.e."; var mac = "n.e."; if (out.match("Host is up")) { up = true; latency = out.match(/\(.+latency/g); latency = latency.toString().replace(/ latency/,""); latency = latency.toString().replace("(",""); //mac = out.match(/..:..:..:..:..:../g).toString(); //mac = out.match(/..-..-..-..-..-../g).toString(); // ..:..:..:..:..:.. } setState(idEchoUp ,up); setState(idEchoLatency ,latency); setState(idEchoStatustime ,now()); setState(idMacAddress ,mac); if(logOn) log("Scan Amazon Echo :"+alexaName+": "); if(logOn) log("Alexa Echo Mac-Adresse: " + mac); if(logOn) log("up: " + up); if(logOn) log("Latency: " + latency); }); } function abfragen() { abfrageConsole(); } // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, abfragen); // main // ----------------------------------------------------------------------------- function main() { abfragen(); } // Start Skript: // ----------------------------------------------------------------------------- setTimeout(main, 500);MOD-EDIT: zum dritten Mal den Code in code-tags gesetzt!!!
-
Im Badezimmer verwende ich einen Echo, welcher mit Lichtschalter gekoppelt ist.
Ziel ist es, wenn das Badezimmerlicht angeht, daß in bestimmter Radiosender gespielt wird.Ich verwende unter ioBroker ein Javascript (von @ruhr70), um Amazon-Echo's im Netz zu prüfen, ob diese in Netzwerk verfügbar sind - in dem Script wird nmap verwendet.
Bei einem Echo (im Büro) funktioniert es auch gut, beim Echo im Badezimmer liefert nmap jedoch im ioBroker-Script ein falsches Ergebnis.
Im Terminal des ioBroker-Docker wird der gleiche Befehl abgesetzt und liefert jedoch das erwünschte Ergebnis.in den Alexa2-Objekten ist auch der Echo zu finden und kann angesteuert werden (z.B: Pause)
Hat jemand eine Idee, woran das liegen kann?
Das Ergebnis aus dem Log im ioBroker (Scripte):
13:35:02.081 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Abfrage : nmap 192.168.8.230 -sT -A -T5 --top-ports=20 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Starting Nmap 7.70 ( https://nmap.org ) at 2021-12-29 13:35 CET Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn Nmap done: 1 IP address (0 hosts up) scanned in 2.04 seconds 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Scan Amazon Echo :OG Bad: 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Alexa Echo Mac-Adresse: n.e. 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: up: false 13:35:02.082 info javascript.0 (2110) script.js.AlexaEcho.CheckAlexaEchoBad: Latency: n.e.Das Ergebnis im Terminal:
root@buanet-iobroker:/opt/iobroker# nmap 192.168.8.230 -sT -A -T5 --top-ports=20 Starting Nmap 7.70 ( https://nmap.org ) at 2021-12-29 13:36 CET Nmap scan report for xx-xx-xx-xx-xx-xx (192.168.8.230) Host is up (0.040s latency). PORT STATE SERVICE VERSION 21/tcp filtered ftp 22/tcp filtered ssh 23/tcp filtered telnet 25/tcp filtered smtp 53/tcp filtered domain 80/tcp filtered http 110/tcp filtered pop3 111/tcp filtered rpcbind 135/tcp filtered msrpc 139/tcp filtered netbios-ssn 143/tcp filtered imap 443/tcp filtered https 445/tcp filtered microsoft-ds 993/tcp filtered imaps 995/tcp filtered pop3s 1723/tcp filtered pptp 3306/tcp filtered mysql 3389/tcp filtered ms-wbt-server 5900/tcp filtered vnc 8080/tcp filtered http-proxy MAC Address: xx-xx-xx-xx-xx-xx (Unknown) Too many fingerprints match this host to give specific OS details Network Distance: 1 hop TRACEROUTE HOP RTT ADDRESS 1 39.69 ms xx-xx-xx-xx-xx-xx (192.168.8.230) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 5.95 secondsHier das Script:
// Prüft die Verfügbarkeit eines Amazon Echos im Netz bei bekannter IP-Adresse // Rückmeldung der Prüfung etwas > 10 Sekunden // Voraussetzungen: // -------------------------- // nmap muss installiert sein // IP-Adresse in der "abfrage" anpassen var alexaName = "OG Bad"; var alexaIP = "192.168.8.230"; var logOn = true; // Logausgabe im Skript var forecreation = false; // true: Datenpunkte werden überschrieben (ween z.B. Bezeichnungen geändert wurden) var pfad = "Systeminfos.Alexa.Echo OG Badezimmer" + "."; // Pfad in dem die Datenpunkte angelegt werden // Datenpunktnamen: var idEchoUp = pfad + 'up'; var idEchoLatency = pfad + "latency"; var idEchoStatustime = pfad + "timestamp"; var idMacAddress = pfad + "mac address"; // regelmässige Wiederholungen der Abfrage var cronStr = "*/1 * * * *"; var abfrage = 'nmap '+alexaIP+' -sT -A -T5 --top-ports=20'; //var abfrage = 'nmap '+alexaIP+' -sT -A -n -T4 --top-ports=20'; // ----------------------------------------------------------------------------- createState(idEchoUp, false, forecreation, { name: 'Alexa Echo '+alexaName+' up', desc: 'Alexa Echo '+alexaName+' up', type: 'boolean', unit: '', role: 'value' }); createState(idEchoLatency, "initalisiert", forecreation, { name: 'Alexa Echo '+alexaName+' Latency', desc: 'Alexa Echo '+alexaName+' Latency', type: 'string', unit: '', role: 'value' }); createState(idEchoStatustime, now(), forecreation, { name: 'Alexa Echo '+alexaName+' letzter Status', desc: 'Alexa Echo '+alexaName+' letzter Status', type: 'string', unit: '', role: 'value' }); createState(idMacAddress, "initalisiert", forecreation, { name: 'Alexa Echo '+alexaName+' Mac Adresse', desc: 'Alexa Echo '+alexaName+' Mac Adresse', type: 'string', unit: '', role: 'value' }); // ----------------------------------------------------------------------------- function now() { return formatDate(new Date(), "hh:mm:ss, YYYY-MM-DD"); } function abfrageConsole() { exec(abfrage, function(err, stdout, stderr) { if(logOn) log("Abfrage : "+abfrage); if (err) { log("Fehler Amazon Echo Scan: " + err,"error"); return; } var out = stdout.toString(); if(logOn) log(out); if(!out || (!out.match("Host is up") && !out.match("Host seems down"))) log("Amazon Echo Scan unklares Ergebnis","warn"); var up = false; var latency = "n.e."; var mac = "n.e."; if (out.match("Host is up")) { up = true; latency = out.match(/\(.+latency/g); latency = latency.toString().replace(/ latency/,""); latency = latency.toString().replace("(",""); //mac = out.match(/..:..:..:..:..:../g).toString(); //mac = out.match(/..-..-..-..-..-../g).toString(); // ..:..:..:..:..:.. } setState(idEchoUp ,up); setState(idEchoLatency ,latency); setState(idEchoStatustime ,now()); setState(idMacAddress ,mac); if(logOn) log("Scan Amazon Echo :"+alexaName+": "); if(logOn) log("Alexa Echo Mac-Adresse: " + mac); if(logOn) log("up: " + up); if(logOn) log("Latency: " + latency); }); } function abfragen() { abfrageConsole(); } // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, abfragen); // main // ----------------------------------------------------------------------------- function main() { abfragen(); } // Start Skript: // ----------------------------------------------------------------------------- setTimeout(main, 500);MOD-EDIT: zum dritten Mal den Code in code-tags gesetzt!!!
@eggi sagte in NMAP liefert im ioBroker falsches Ergebnis:
Hat jemand eine Idee, woran das liegen kann?
nmap reagiert anders, jenachdem ob es als root läuft oder von einem user ohne weitere Rechte aufgerufen wird.
-
@eggi sagte in NMAP liefert im ioBroker falsches Ergebnis:
Hat jemand eine Idee, woran das liegen kann?
nmap reagiert anders, jenachdem ob es als root läuft oder von einem user ohne weitere Rechte aufgerufen wird.
@thomas-braun
Danke für Deinen Hinweis:
Wie kann man die Rechte prüfen bzw. passend einstellen.Als Hinweis:
Auf dem Echo-Dot mit der IP-Adresse 192.168.8.230 funktioniert es nicht;
auf einem Echo-Show5 mit der IP-Adresse 192.168.8.225 im gleichen Netz geht es
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden