Autor Thema: neues Modul 74_Nmap  (Gelesen 9597 mal)

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
neues Modul 74_Nmap
« am: 18 September 2016, 10:28:34 »
Nmap ist das FHEM Modul um einen Netzwerkscan mit Nmap durchzuführen und Informationen über die erreichbaren Netzwerkgeräte darzustellen.

Das Modul ist ab dem 23.03.2016 per update verfügbar.

Originalbeitrag

Hi zusammen,

ich überlege gerade wie es möglich ist, einen nmap scan über das Netzwerk durchzuführen und auszuwerten.
Dadurch soll z.B. eine Gäste erkennung stattfinden (https://forum.fhem.de/index.php/topic,55159.15.html).

Umsetzten würde ich das ganze mit einem at welchem dann die Readings <hostname>_ip, <hostname>_latency und <hostname>_MAC gegeben werden. (Ähnlich wie bei dem unifi Modul)

Es gibt auch den Nmap::Parser (http://search.cpan.org/~apersaud/Nmap-Parser/Parser.pm)

Da ich mit zusätlichen Perl Modulen bisher noch nicht gearbeitet habe scheitert es bei mir noch an dem Verständnis wie das angewendet wird.
Bisher habe ich mir eine sub in den myUtils angelegt
sub nmap {
  my $np = new Nmap::Parser;
  $np->parsescan("/usr/bin/nmap", "-sn", "192.168.1.2/24");
  return;
}
beim Aufruf erhalte ich jedoch die Fehlermeldung Edit: man sollte auch "usr" statt "urs" im Pfad angeben :D

Vielleicht kann mir ja jemand einen Tip geben wie ich weiter komme.

Grüße
igami
« Letzte Änderung: 22 März 2017, 09:41:49 von igami »
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
Antw:Nmap Scanner
« Antwort #1 am: 18 September 2016, 15:20:27 »
Soweit, sogut.

Voraussetzung:
nmap und Nmap::Parser müssen installiert sein. Bei Debian geht das mittels
sudo apt-get install nmap libnmap-parser-perl

myUtils erweitern:
use Nmap::Parser;

sub nmap($$) {
  my ($name, $network) = @_;
  my $hash = $defs{$name};
  my $np = new Nmap::Parser;
  $np->parsescan("/usr/bin/nmap", "-sn", $network);
 
  my @hosts_up = $np->all_hosts("up");
  readingsBeginUpdate($hash);
  readingsBulkUpdate($hash, "hosts_up", int(@hosts_up));
  for (@hosts_up){
    my $hostname = $_->hostname() ? $_->hostname() : $_->addr();
    fhem("trigger $name new host: $hostname") if(!$hash->{READINGS}{$hostname});
    readingsBulkUpdate($hash, $hostname, $_->addr());
  }
  readingsEndUpdate($hash, 1);
  return;
}

Gerät in fhem anlegen:
define nmap at +*00:15:00 {nmap("nmap", "192.168.1.0/24")}

Nun bekommen wir alle 15 Minuten die Meldung wie viele Geräte erreichbar sind und welchen hostname und IP sie haben.
Zusätzlich wird bei neuen Geräten ein Event erzeugt.

Vielleicht kann es ja noch jemand gebrauchen.

Grüße
igami

PS: wie geht das nun mit dem nonblocking?
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
Antw:Nmap Scanner
« Antwort #2 am: 18 September 2016, 16:28:44 »
PS: wie geht das nun mit dem nonblocking?
Die minimale myUtils sollte nun so aussehen:
package main;
  use strict;
  use warnings;
  use POSIX;

  use Blocking;
 
  use Nmap::Parser;

sub myUtils_Initialize($$) {
  my ($hash) = @_;
}

sub nmapPingScan($$){
  my ($name, $network) = @_;
  my $hash = $defs{$name};
  $hash->{helper}{RUNNING_PID} = BlockingCall("blocking_nmapPingScan", $name."|".$network, "nmapPingScan_Done", 300, "nmapPingScan_Aborted", $hash) unless(exists($hash->{helper}{RUNNING_PID}));
  return;
}

sub blocking_nmapPingScan($$) {
  my ($string) = @_;
  my ($name, $network) = split("\\|", $string);
  my $hash = $defs{$name};
  my $np = new Nmap::Parser;
  $np->parsescan("/usr/bin/nmap", "-sn", $network);

  my @ret = $name;
 
  my @hosts_up = $np->all_hosts("up");

  for (@hosts_up){
    my $hostname = $_->hostname() ? $_->hostname() : $_->addr();
    push(@ret, "$hostname|".$_->addr());
  }
  return join("||", @ret);
}

sub nmapPingScan_Done($) {
  my ($string) = @_;
 
  return unless(defined($string));

  my @hosts_up = split("\\|\\|", $string);
  my $name  = shift @hosts_up;
  my $hash = $defs{$name};

  delete($hash->{helper}{RUNNING_PID});

  readingsBeginUpdate($hash);
  readingsBulkUpdate($hash, "hosts_up", int(@hosts_up));
  for (@hosts_up){
    my ($hostname, $ip) = split("\\|", $_);
    fhem("trigger $name new host: $hostname") if(!$hash->{READINGS}{$hostname});
    readingsBulkUpdate($hash, $hostname, $ip);
  }
  readingsEndUpdate($hash, 1);
  return;
}

sub nmapPingScan_Aborted($) {
  my ($hash) = @_;
  delete($hash->{helper}{RUNNING_PID});
}

1;
Die DEF vom at ändert sich zu
define nmap at +*00:15:00 {nmapPingScan("nmap", "192.168.1.0/24")}
« Letzte Änderung: 18 September 2016, 16:31:41 von igami »
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 5254
    • Otto's Technik Blog
Antw:Nmap Scanner
« Antwort #3 am: 18 September 2016, 17:52:23 »
Hallo igami,

ich finde das interessant. Ich wollte vorhin mal mit wegen non Blocking schauen (obwohl ich zugegeben wenig Ahnung von Perl habe) und bevor ich alles richtig probiert hatte kamst Du mit der neuen Version  8)

Was mir auffällt, irgendwie wird die Anzahl begrenzt. Von meinen 24 Geräten (mit Fing unter Android ermittelt) werden nur 16 angezeigt plus hosts_up und state.
Wobei ein paar Geräte mehrere IPs haben.
nmap auf der Kommandozeile liefert sie alle, allerdings bei meinem Pi3 kann er die Mac Adressen nicht ermitteln.

Eigenartig, hast Du da eine Idee? Ist irgendwie die Zahl/Größe der Readings beschränkt?

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
Antw:Nmap Scanner
« Antwort #4 am: 18 September 2016, 18:11:06 »
Wobei ein paar Geräte mehrere IPs haben.
Zitat
addr()
    Returns the main IP address of the host. This is usually the IPv4 address. If there is no IPv4 address, the IPv6 is returned (hopefully there is one).
Könnte damit zusammenhängen.
nmap auf der Kommandozeile liefert sie alle, allerdings bei meinem Pi3 kann er die Mac Adressen nicht ermitteln.
MAC Adresse wird nur beim ausführen als root angezeigt
Eigenartig, hast Du da eine Idee? Ist irgendwie die Zahl/Größe der Readings beschränkt?
Muss ich mir gleich nochmal anschauen wie man alle Adressen bekommt. Dann müsste ich aber auch den Namen des Readings eindeutiger machen, ist ja bisher Hostname, bzw. IP falls das Gerät keinen Hostname sendet
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 5254
    • Otto's Technik Blog
Antw:Nmap Scanner
« Antwort #5 am: 18 September 2016, 18:33:45 »
Also ganz praktisch. Das liefert nmap (als root)  8)
Starting Nmap 6.47 ( http://nmap.org ) at 2016-09-18 18:24 CEST
Nmap scan report for fritz.box (192.168.178.1)
Host is up (0.00045s latency).
MAC Address: 38:10:D5:0F:98:0F (Unknown)
Nmap scan report for 192.168.178.3
Host is up (0.00059s latency).
MAC Address: 9C:C7:A6:FA:D2:BD (AVM GmbH)
Nmap scan report for SonosZP.fritz.box (192.168.178.20)
Host is up (0.00083s latency).
MAC Address: 00:0E:58:AA:AD:9C (Sonos)
Nmap scan report for NEXUS7.fritz.box (192.168.178.23)
Host is up (0.11s latency).
MAC Address: AC:22:0B:A3:1B:09 (Asustek Computer)
Nmap scan report for NEXUS5-2.fritz.box (192.168.178.24)
Host is up (0.010s latency).
MAC Address: CC:FA:00:F0:3D:0D (LG Electronics)
Nmap scan report for LSK2012.fritz.box (192.168.178.32)
Host is up (-0.10s latency).
MAC Address: 78:24:AF:43:AC:E5 (Asustek Computer)
Nmap scan report for et9x00.fritz.box (192.168.178.33)
Host is up (-0.099s latency).
MAC Address: 00:16:B4:03:F5:0E (Private)
Nmap scan report for WBP-A78C.fritz.box (192.168.178.34)
Host is up (-0.100s latency).
MAC Address: 00:24:E4:10:A7:8C (Withings)
Nmap scan report for AsusTransformer.fritz.box (192.168.178.35)
Host is up (-0.089s latency).
MAC Address: F4:6D:04:4D:A5:AC (Asustek Computer)
Nmap scan report for SonosZP.fritz.box (192.168.178.40)
Host is up (-0.069s latency).
MAC Address: 00:0E:58:6B:E2:A2 (Sonos)
Nmap scan report for openmediavault.fritz.box (192.168.178.44)
Host is up (0.00025s latency).
MAC Address: 00:26:2D:00:10:91 (Wistron)
Nmap scan report for SonosZP.fritz.box (192.168.178.45)
Host is up (-0.060s latency).
MAC Address: 00:0E:58:F4:2D:52 (Sonos)
Nmap scan report for SonosZP.fritz.box (192.168.178.46)
Host is up (-0.059s latency).
MAC Address: 00:0E:58:C7:7D:38 (Sonos)
Nmap scan report for SonosZP.fritz.box (192.168.178.48)
Host is up (-0.057s latency).
MAC Address: 00:0E:58:C7:89:4E (Sonos)
Nmap scan report for All3691.fritz.box (192.168.178.49)
Host is up (-0.10s latency).
MAC Address: 00:0F:C9:01:1B:96 (Allnet GmbH)
Nmap scan report for fritz.repeater (192.168.178.52)
Host is up (-0.097s latency).
MAC Address: 3E:10:D5:14:82:B7 (Unknown)
Nmap scan report for LPK10.fritz.box (192.168.178.54)
Host is up (0.00019s latency).
MAC Address: 9C:5C:8E:74:85:26 (Unknown)
Nmap scan report for LEQ0102164.fritz.box (192.168.178.66)
Host is up (-0.100s latency).
MAC Address: 00:1A:22:04:3F:3E (eQ-3 Entwicklung GmbH)
Nmap scan report for LGwebOSTV.fritz.box (192.168.178.70)
Host is up (-0.100s latency).
MAC Address: 3C:CD:93:99:10:33 (LG Electronics)
Nmap scan report for raspib.fritz.box (192.168.178.80)
Host is up (0.00034s latency).
MAC Address: E8:DE:27:14:42:68 (Tp-link Technologies Co.)
Nmap scan report for raspibplus.fritz.box (192.168.178.81)
Host is up (-0.100s latency).
MAC Address: B8:27:EB:9C:45:06 (Raspberry Pi Foundation)
Nmap scan report for raspib2.fritz.box (192.168.178.82)
Host is up (-0.10s latency).
MAC Address: B8:27:EB:AE:D5:C8 (Raspberry Pi Foundation)
Nmap scan report for raspib.fritz.box (192.168.178.90)
Host is up (0.00042s latency).
MAC Address: E8:DE:27:14:42:68 (Tp-link Technologies Co.)
Nmap scan report for 192.168.178.201
Host is up (0.38s latency).
MAC Address: 38:10:D5:0F:98:0F (Unknown)
Nmap scan report for raspib3.fritz.box (192.168.178.83)
Host is up.
Nmap scan report for raspib3.fritz.box (192.168.178.93)
Host is up.
Nmap done: 256 IP addresses (26 hosts up) scanned in 4.68 seconds
Diese Readings stehen in FHEM: 192.168.178.3 192.168.178.3 2016-09-18 18:18:49
All3691.fritz.box 192.168.178.49 2016-09-18 18:18:49
AsusTransformer.fritz.box 192.168.178.35 2016-09-18 18:18:49
LEQ0102164.fritz.box 192.168.178.66 2016-09-18 18:18:49
LGwebOSTV.fritz.box 192.168.178.70 2016-09-18 18:18:49
NEXUS5.fritz.box 192.168.178.26 2016-09-18 18:03:49
NEXUS7.fritz.box 192.168.178.23 2016-09-18 17:34:07
SonosZP.fritz.box 192.168.178.48 2016-09-18 18:18:49
WBP-A78C.fritz.box 192.168.178.34 2016-09-18 18:18:49
et9x00.fritz.box 192.168.178.33 2016-09-18 18:18:49
fritz.box 192.168.178.1 2016-09-18 18:18:49
fritz.repeater 192.168.178.52 2016-09-18 18:18:49
hosts_up 21 2016-09-18 18:18:49
openmediavault.fritz.box 192.168.178.44 2016-09-18 18:18:49
raspib.fritz.box 192.168.178.90 2016-09-18 18:18:49
raspib2.fritz.box 192.168.178.82 2016-09-18 18:18:49
raspib3.fritz.box 192.168.178.93 2016-09-18 18:18:49
raspibplus.fritz.box 192.168.178.81 2016-09-18 18:18:49
state Next: 18:33:46 2016-09-18 18:18:46

Verstehe mich nicht falsch, Du musst das für mich nicht lösen.  8)
Ich finde bloß die geringere Anzahl irgendwie unklar, zumal sie sich vorhin auf 19 erhöht hat. Ja, dass was nmap bei mir ermittelt ist auch nicht ganz konstant, wahrscheinlich schlafen immer mal ein WLAN Geräte.

Edit: Und irgendwie wird es in jeder Runde ein reading mehr  :o
« Letzte Änderung: 18 September 2016, 18:42:44 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
Antw:Nmap Scanner
« Antwort #6 am: 18 September 2016, 19:09:48 »
Aber ich sollte schonmal berücksichtigen, dass die IP eindeutig ist und der hostname nicht.
Habe Name und Wert vom Reading mal umgedreht und statt all_hosts($status) wird nun iget_ips($status) geprüft.
package main;
  use strict;
  use warnings;
  use POSIX;

  use Blocking;
 
  use Nmap::Parser;

sub myUtils_Initialize($$) {
  my ($hash) = @_;
}

sub nmapPingScan($$){
  my ($name, $network) = @_;
  my $hash = $defs{$name};
  $hash->{helper}{RUNNING_PID} = BlockingCall("blocking_nmapPingScan", $name."|".$network, "nmapPingScan_Done", 300, "nmapPingScan_Aborted", $hash) unless(exists($hash->{helper}{RUNNING_PID}));
  return;
}

sub blocking_nmapPingScan($$) {
  my ($string) = @_;
  my ($name, $network) = split("\\|", $string);
  my $hash = $defs{$name};
  my $np = new Nmap::Parser;
  $np->parsescan("/usr/bin/nmap", "-sn", $network);

  my @ret = $name;
 
  my @hosts_up = $np->get_ips("up");

  for (@hosts_up){
    my $hostname = $_->hostname() ? $_->hostname() : $_->addr();
    push(@ret, $_->addr()."|$hostname");
  }
  return join("||", @ret);
}

sub nmapPingScan_Done($) {
  my ($string) = @_;
 
  return unless(defined($string));

  my @hosts_up = split("\\|\\|", $string);
  my $name  = shift @hosts_up;
  my $hash = $defs{$name};

  delete($hash->{helper}{RUNNING_PID});

  readingsBeginUpdate($hash);
  readingsBulkUpdate($hash, "hosts_up", int(@hosts_up));
  for (@hosts_up){
    my ($ip, $hostname) = split("\\|", $_);
    fhem("trigger $name new host: $hostname ($ip)") if(!$hash->{READINGS}{$ip});
    readingsBulkUpdate($hash, $ip, $hostname);
  }
  readingsEndUpdate($hash, 1);
  return;
}

sub nmapPingScan_Aborted($) {
  my ($hash) = @_;
  delete($hash->{helper}{RUNNING_PID});
}

1;
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 5254
    • Otto's Technik Blog
Antw:Nmap Scanner
« Antwort #7 am: 18 September 2016, 19:42:50 »
Aber damit funktioniert es nicht mehr, die readings bleiben leer...
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
Antw:Nmap Scanner
« Antwort #8 am: 18 September 2016, 19:46:39 »
... und statt all_hosts($status) wird nun iget_ips($status) geprüft.
Damit scheint es nicht zu funktionieren, also wieder zurück. Aber ich habe gesehen, dass hosts_up auch mehr zählt als Readings angelegt wurden, also alles ok.
Readings werden dann auch wieder gefüllt :)
package main;
  use strict;
  use warnings;
  use POSIX;

  use Blocking;
 
  use Nmap::Parser;

sub myUtils_Initialize($$) {
  my ($hash) = @_;
}

sub nmapPingScan($$){
  my ($name, $network) = @_;
  my $hash = $defs{$name};
  $hash->{helper}{RUNNING_PID} = BlockingCall("blocking_nmapPingScan", $name."|".$network, "nmapPingScan_Done", 300, "nmapPingScan_Aborted", $hash) unless(exists($hash->{helper}{RUNNING_PID}));
  return;
}

sub blocking_nmapPingScan($$) {
  my ($string) = @_;
  my ($name, $network) = split("\\|", $string);
  my $hash = $defs{$name};
  my $np = new Nmap::Parser;
  $np->parsescan("sudo /usr/bin/nmap", "-sn", $network);

  my @ret = $name;
 
  my @hosts_up = $np->all_hosts("up");

  for (@hosts_up){
    my $hostname = $_->hostname() ? $_->hostname() : $_->addr();
    push(@ret, $_->addr()."|$hostname");
  }
  return join("||", @ret);
}

sub nmapPingScan_Done($) {
  my ($string) = @_;
 
  return unless(defined($string));

  my @hosts_up = split("\\|\\|", $string);
  my $name  = shift @hosts_up;
  my $hash = $defs{$name};

  delete($hash->{helper}{RUNNING_PID});

  readingsBeginUpdate($hash);
  readingsBulkUpdate($hash, "hosts_up", int(@hosts_up));
  for (@hosts_up){
    my ($ip, $hostname) = split("\\|", $_);
    fhem("trigger $name new host: $hostname ($ip)") if(!$hash->{READINGS}{$ip});
    readingsBulkUpdate($hash, $ip, $hostname);
  }
  readingsEndUpdate($hash, 1);
  return;
}

sub nmapPingScan_Aborted($) {
  my ($hash) = @_;
  delete($hash->{helper}{RUNNING_PID});
}

1;
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
Antw:Nmap Scanner
« Antwort #9 am: 18 September 2016, 20:27:55 »
Hmm, irgendwie werden sehr viele perl Prozesse erzeugt. Bitte nicht im Produktivsystem testen!
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 5254
    • Otto's Technik Blog
Antw:Nmap Scanner
« Antwort #10 am: 19 September 2016, 09:57:59 »
Kann ich nur unterstreichen. Hat auf meinem Testsystem gestern ziemliches Chaos im Logfile erzeugt und irgendwann dem FHEM das Leben ausgehaucht...
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
Antw:Nmap Scanner
« Antwort #11 am: 23 September 2016, 19:59:16 »
So, nachdem ich nun die ganze Woche beruflich unterwegs war hab ich nun wieder Zeit mich dem Scanner zu widmen.
Hast du selbst schon weiter gebastelt?
Ich überlege ob ich nicht einfach ein kleines Modul draus machen soll. Ich befürchte nur, dass das Potential hat kein kleines Modul zu bleiben :D Nmap ist ja schon mächtig.
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
Antw:Nmap Scanner
« Antwort #12 am: 23 September 2016, 20:38:37 »
nicht überlegen, ... machen ;-)
Schon dabei!
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 5254
    • Otto's Technik Blog
Antw:Nmap Scanner
« Antwort #13 am: 23 September 2016, 20:45:15 »
Hast du selbst schon weiter gebastelt?
Ne war mir zu heiß  :-X und ich habe von Perl noch relativ wenig Ahnung.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1682
  • RTFM
Antw:Nmap Scanner
« Antwort #14 am: 24 September 2016, 14:41:59 »
So, anbei die erste Version. Bitte mal vorsichtig testen. Läuft bei mir soweit ganz gut.

Voraussetzungen
sudo apt-get install nmap libnmap-parser-perl

define
define <name> Nmap <target specification>

set
  • clear Readings
    löscht alle Readings außer state
  • statusRequest
    stößt einen Scan an

Attribute
  • interval
    Intervall für die Abfrage. Minimum 30 Sekunden, Vorgabe 900 Sekunden
  • path
    Pfad unter dem nmap zu erreichen ist. Vorgabe /urs/bin/nmap

ToDo
- sudo / MAC-Adressen
- args
- disabled
- CommandRef

Ich freue mich auf eure Rückmeldungen.

Grüße
igami

Edit: Aktuelle Version im ersten Beitrag
« Letzte Änderung: 24 September 2016, 17:19:08 von igami »
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

 

decade-submarginal