74_Nmap

Begonnen von igami, 18 September 2016, 10:28:34

Vorheriges Thema - Nächstes Thema

igami

Zitat von: rasti am 16 Dezember 2018, 22:44:46
Hat schon jemand mal eine Presence-Abfrage mit dem Modul realisiert ?

Im Prinzip müssten die ganzen Readings doch nur nach der IP durchsucht werden...
ich meine beim Fritzboxmodul geht das auch so ähnlich mit der Routine checkAllFritzMACpresent (siehe unten)
nur dass da halt die Readings nach der MAC durchsucht werden.
Bei der Routine wird doch die MAC Adresse übergeben und nicht die IP.

Wenn ihr da was fertiges habt kann ich gerne noch ein get in das Modul einbauen so wie "get <alias|hostname|ip|macAddress> <alias|hostname|ip|lastSeen|macAddress|macVendor|state|uptime|uptimeText>". Damit lassen sich dann Informationen zu dem spezifizierten Device abfragen.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

rasti

Hallo,

Zitat von: igami am 17 Dezember 2018, 06:17:12
Bei der Routine wird doch die MAC Adresse übergeben und nicht die IP.

Das ist schon klar. Ich wollte nur sagen dass ich gerne was ähnliches für NMap hätte :=)

Zitat

Wenn ihr da was fertiges habt kann ich gerne noch ein get in das Modul einbauen so wie "get <alias|hostname|ip|macAddress> <alias|hostname|ip|lastSeen|macAddress|macVendor|state|uptime|uptimeText>". Damit lassen sich dann Informationen zu dem spezifizierten Device abfragen.

Was fertiges habe ich leider nicht. Meine Perl-Kenntnisse reichen da hinten und vorne nicht dazu  :(

Wenn ich mir noch was wünschen dürfte, wäre eine Spalte (z.B. die mit der MAC-Adresse) , wo man
draufklickt und dann einen eigenen Namen (alternativ zum Hostnamen) vergeben kann.

Ich habe das jetzt provisorisch mit dem Attribut valueFormat gelöst , z.B.
{ if ($VALUE eq 'absent') {
     "<img src='./fhem/images/default/10px-kreis-rot.png' alt='absent'>"
     }
  elsif ($VALUE eq 'present') {
     "<img src='./fhem/images/default/10px-kreis-gruen.png' alt='present'>"
     }
  elsif ($VALUE eq '27:55:31:42:14:1D') {
     "Fritzbox"
     }
  elsif (substr($READING,rindex($READING,"_")) eq "_ip") {
     substr($VALUE,rindex($VALUE,".")+1)
     }
  else {
    ""
    }
}



Schöne Grüße

Ralf

igami

Zitat von: rasti am 17 Dezember 2018, 13:10:42
Wenn ich mir noch was wünschen dürfte, wäre eine Spalte (z.B. die mit der MAC-Adresse) , wo man
draufklickt und dann einen eigenen Namen (alternativ zum Hostnamen) vergeben kann.
Dafür gibt es das devAlias  Attribut ;)
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

rasti

Zitat von: igami am 17 Dezember 2018, 17:00:42
Dafür gibt es das devAlias  Attribut ;)

Aha :-\ Ich hab jetzt im NMAP-Device für einige MACs einige Device-Aliase vergeben,
aber wie bekomme ich die nun  (in der Readiungsgroup) zu sehen ?

Ich habe zudem noch das Problem , dass mir die 0-te Spalte mit den Nummern nicht richtig sortiert
wird, weil einstellige Zahlen ohne führende Nullen dabei sind. Ich habe nun irgendwo was vom
valueColumns Attribut { "sorttable_customkey='$NUM'"} gelesen und das gesetzt, es wird aber
immer noch nicht richtig sortiert. Was muss ich hier genau machen ?

Viele Grüße
Ralf

igami

Zitat von: rasti am 17 Dezember 2018, 18:14:08
Aha :-\ Ich hab jetzt im NMAP-Device für einige MACs einige Device-Aliase vergeben,
aber wie bekomme ich die nun  (in der Readiungsgroup) zu sehen ?
meine rg dev sieht so aus:

<>,<host>,<IP>,<MAC>,<uptime>,<lastSeen>
Nmap:@1,(.*)_alias,#1_ip,!#1_macAddress,#1_uptimeText,#1_lastSeen


Zitat von: rasti am 17 Dezember 2018, 18:14:08
Ich habe zudem noch das Problem , dass mir die 0-te Spalte mit den Nummern nicht richtig sortiert
wird, weil einstellige Zahlen ohne führende Nullen dabei sind. Ich habe nun irgendwo was vom
valueColumns Attribut { "sorttable_customkey='$NUM'"} gelesen und das gesetzt, es wird aber
immer noch nicht richtig sortiert. Was muss ich hier genau machen ?
Da kann dir nur jemand helfen, der sich mit rg auskennt. Ich kann mir vorstellen, dass es daran liegt, dass 127.0.0.1 keine Zahl ist und daher nach Text soriert wird.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

ChHerrm

Hallo zusammen,
ich möchte mich benachrichtigen lassen, wenn für FHEM unbekannte Geräte im Netzwerk sind. Meine Idee ist, die eingelesenen Geräte in eine Datei auf meinem RaspberryPi (auf dem auch FHEM läuft) zu schreiben. Dabei weiß ich jedoch nicht wie ich das hinbekomme und hoffe, dass mir jemand dabei weiterhelfen kann.
Wenn ich die Daten dort erstmal habe, komme ich denke ich zurecht (--> Python o.ä. --> vorbereitete MAC-Adressen aus der fhem.cfg mit den MAC-Adressen der eingelesenen Geräte vergleichen). Vielleicht gibt's ja auch schon eine Stelle an der die Infos zu finden sind oder ihr kennt einen direkteren Weg die unbekannten Geräte herauszubekommen :o Ich hoffe, dass jemand einen guten Tipp für mich hat :-\

rasti

Zitat von: ChHerrm am 18 Dezember 2018, 19:49:39
Hallo zusammen,
ich möchte mich benachrichtigen lassen, wenn für FHEM unbekannte Geräte im Netzwerk sind. Meine Idee ist, die eingelesenen Geräte in eine Datei auf meinem RaspberryPi (auf dem auch FHEM läuft) zu schreiben. Dabei weiß ich jedoch nicht wie ich das hinbekomme und hoffe, dass mir jemand dabei weiterhelfen kann.
Wenn ich die Daten dort erstmal habe, komme ich denke ich zurecht (--> Python o.ä. --> vorbereitete MAC-Adressen aus der fhem.cfg mit den MAC-Adressen der eingelesenen Geräte vergleichen). Vielleicht gibt's ja auch schon eine Stelle an der die Infos zu finden sind oder ihr kennt einen direkteren Weg die unbekannten Geräte herauszubekommen :o Ich hoffe, dass jemand einen guten Tipp für mich hat :-\
???? Die gewünschten Daten bekommst du mit genau diesem Modul auf den Pi. Die Readings dann einfach in eine log-Datei schreiben.

Jetzt aber mit Python weiterzuarbeiten halte ich für wenig zielführend.

Du müsstest halt (wie ich auch ::) ) noch ein bisschen Perl lernen und dann eine kleine Routine für die 99_myUtils.pm schreiben.

Oder igami schreibt uns wie vorgeschlagen eine Funktion "get <alias|hostname|ip|macAddress> <alias|hostname|ip|lastSeen|macAddress|macVendor|state|uptime|uptimeText>" fürs Modul .....


igami

Zitat von: ChHerrm am 18 Dezember 2018, 19:49:39
Hallo zusammen,
ich möchte mich benachrichtigen lassen, wenn für FHEM unbekannte Geräte im Netzwerk sind. Meine Idee ist, die eingelesenen Geräte in eine Datei auf meinem RaspberryPi (auf dem auch FHEM läuft) zu schreiben. Dabei weiß ich jedoch nicht wie ich das hinbekomme und hoffe, dass mir jemand dabei weiterhelfen kann.
Wenn ich die Daten dort erstmal habe, komme ich denke ich zurecht (--> Python o.ä. --> vorbereitete MAC-Adressen aus der fhem.cfg mit den MAC-Adressen der eingelesenen Geräte vergleichen). Vielleicht gibt's ja auch schon eine Stelle an der die Infos zu finden sind oder ihr kennt einen direkteren Weg die unbekannten Geräte herauszubekommen :o Ich hoffe, dass jemand einen guten Tipp für mich hat :-\
siehe commandref:
Zitat
Wird ein neues Gerät erkannt wird ein Event "<name> new host: <hostname> (<IPv4>)" erzeugt.
Wird erkannt, dass ein Gerät mit bekannter MAC-Adresse eine neue IP erhalten hat wird ein Event "<name> new IP: <hostname> (<IPv4>)" erzeugt.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

ChHerrm

Danke für eure Hinweise! Ja, dass es dieses Event gibt, war mir aus der Commandref bekannt. Ich möchte die ganzen nmap-Ausgaben aber ungern in das "normale" Log werfen, da das alle 5 Minuten läuft und mir das Log dann kräftig füllt. Eventuell hab ich aber auch die Ausgabe  "<name> new host: <hostname> (<IPv4>)" nicht verstanden. Die taucht nur im Log auf dachte ich, korrekt? Dann hätte ich ja keine so direkte Möglichkeit für eine Variante wie zB (vereinfacht):


define NeuesGeraetgefunden notify MeinNMAP:new_host set ...


Oder? Das wäre eigentlich schon ausreichend. Wenn das so aber nicht machbar ist, wäre nur noch das Ausgeben der Logmeldungen von NMAP in ein eigenes Logfile eine für mich sinnvolle Variante. Dort könnte ich dann ja nach der "new host"-Meldung parsen ohne mein RoutineLog in 99% der Fälle unnötig zu befüllen.
Noch eine Nachfrage dazu: die "new host"-Meldung taucht in Loglevel 4 auf nehme ich an, oder?

igami

Zitat von: ChHerrm am 19 Dezember 2018, 16:39:13
Danke für eure Hinweise! Ja, dass es dieses Event gibt, war mir aus der Commandref bekannt. Ich möchte die ganzen nmap-Ausgaben aber ungern in das "normale" Log werfen, da das alle 5 Minuten läuft und mir das Log dann kräftig füllt. Eventuell hab ich aber auch die Ausgabe  "<name> new host: <hostname> (<IPv4>)" nicht verstanden. Die taucht nur im Log auf dachte ich, korrekt? Dann hätte ich ja keine so direkte Möglichkeit für eine Variante wie zB (vereinfacht):


define NeuesGeraetgefunden notify MeinNMAP:new_host set ...


Oder? Das wäre eigentlich schon ausreichend. Wenn das so aber nicht machbar ist, wäre nur noch das Ausgeben der Logmeldungen von NMAP in ein eigenes Logfile eine für mich sinnvolle Variante. Dort könnte ich dann ja nach der "new host"-Meldung parsen ohne mein RoutineLog in 99% der Fälle unnötig zu befüllen.
Noch eine Nachfrage dazu: die "new host"-Meldung taucht in Loglevel 4 auf nehme ich an, oder?
Ein Event ist ein Event und wird von einem notify oder auch filelog behandelt, besitzt aber kein loglevel.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ChHerrm

Danke für den Anstoß mit dem Eventmonitor, damit ging es nun doch recht zügig :D Anfrage ist damit erledigt, besten Dank!
----------------------------------------------------------------
Zwecks Vollständigkeit hier noch mein Ergebnis:
Das "new device"-Event war nun doch nichts für mich. Das listet auch nach einem Löschen der alten Readings alles Mögliche als neu auf. Ich gucke nun auf das alias. Wenn das keinen sinnvollen Namen enthält sondern nur die IP-Adresse, dann ist es für mich unbekannt und ich will benachrichtigt werden. Um mich nicht im 5-Minuten-(NMap)-Takt benachrichtigen zu lassen, pausiert die Prüfung nach einer Mitteilung für eine Stunde. Mir die genaueren Infos zu dem Gerät mitteilen zu lassen, verschiebe ich mal auf die nächsten freien Tage ::) Hier das notify um meine ursprüngliche Nachfrage abzurunden:


define Netzwerkteilnehmer_notify_1 notify Netzwerkteilnehmer:.*.*.*_alias:.192.168.0.* set Netzwerkteilnehmer_notify_1 inactive;set IWATelegram message Hallo, ich habe ein unbekanntes Gerät im Netzwerk gefunden.; sleep 3600; set Netzwerkteilnehmer_notify_1 active

Otto123

#238
.*.*.*Das ist nicht nur doppelt gemoppelt sonder dreifach  ;D
Also: . steht irgendein Zeichen und * steht für beliebig viele des vorstehenden Zeichens -> irgendwelche und davon beliebig viele Zeichen.

Insofern: der Punkt in einer IP Adresse ist so nicht ermittelbar, die Adresse kann auch so aussehen 192-168-1-1 oder 192A168B1C1D
.*_alias triggert auf 192.168.1.1_alias genauso wie auf willi_alias

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ChHerrm

Das stimmt natürlich, dann nehme ich mal die überflüssigen Doppelungen raus. Mit der Überschneidung IRGENDWAS_alias kann ich leben :D
Danke für den Tipp!