Hi,
ich würde gerne wissen, obs eine möglichkeit gibt, die IP des jenigen herauszubekommen, der gerade mit der aktiven remote-desktop-Session verbunden ist.
Ich hab schon überlegt, ob ich mit die IP aus der "netstat" auswertung auslesen lassen soll. Aber das ist relativ umständlich und unelegant.
Wäre super, wenn da jemand einen Ansatz oder eine Idee hätte.
gruß Zack
remote-desktop - wer ist connected
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Zack!Zack hat geschrieben:Hi,
ich würde gerne wissen, obs eine möglichkeit gibt, die IP des jenigen herauszubekommen, der gerade mit der aktiven remote-desktop-Session verbunden ist.
Ich hab schon überlegt, ob ich mit die IP aus der "netstat" auswertung auslesen lassen soll. Aber das ist relativ umständlich und unelegant.
Wäre super, wenn da jemand einen Ansatz oder eine Idee hätte.
gruß Zack
Willkommen im Python-Forum!
Ich weiß jetzt nicht welche Einträge ins Windows-Log geschrieben werden wenn sich jemand über Remote Desktop zum Computer verbindet. Aber wenn man die Gruppenrichtlinien richtig einstellt, dann gibt es auf jeden Fall einen Eintrag. Vielleicht steht also im Eventlog von Windows auch drinnen, wer und von welchem Computer aus die Verbindung initiiert wurde.
Das Eventlog kann man auslesen. --> mit ``win32evtlog``.
Mehr fällt mir dazu im Moment nicht ein.
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
jo, vielen dank für die begrüßung erstmal.
Habe bei mir bezüglich der eventlog leider keinen Eintrag finden können, welche dieses Protokolieren.
Ich hab jetzt versucht die "netstat"-Lösung umzusetzen.
Folgendes kahm dabei raus:
Soweit klappt das alles auch ganz gut bei der ausführung. Testweise habe ich die prints dringelassen.
Das Problem ist aber, dass er bei schnellen wiederholten ausführen die falsche netstat-zeile nimmt. Ich kann mir absolut nicht erklären warum er das tut. Ich hab aber so das Gefühl, dass durch den win32net.NetWkstaGetInfo eine neue netstat-zeile am ende ensteht und aus irrgendeinem mir unerfindlichen Grund diese in meiner Schleife verwändet wird.
Normale Compiler-Ausgabe:
Habs versucht etwas übersichtlicher zu machen.
Hoffe jemand kann mir dabei weiterhelfen.
gruss Zack
Habe bei mir bezüglich der eventlog leider keinen Eintrag finden können, welche dieses Protokolieren.
Ich hab jetzt versucht die "netstat"-Lösung umzusetzen.
Folgendes kahm dabei raus:
Code: Alles auswählen
import os
import string
import win32net
for x in os.popen('netstat').readlines():
i = x
if i.find("3389"):
ori = i
ip = i[i.find(":3389")+5:i.rfind(":")].strip()
print ip
print ori
print win32net.NetWkstaGetInfo(ip,100) #hier steckt der computername drin
Das Problem ist aber, dass er bei schnellen wiederholten ausführen die falsche netstat-zeile nimmt. Ich kann mir absolut nicht erklären warum er das tut. Ich hab aber so das Gefühl, dass durch den win32net.NetWkstaGetInfo eine neue netstat-zeile am ende ensteht und aus irrgendeinem mir unerfindlichen Grund diese in meiner Schleife verwändet wird.
Normale Compiler-Ausgabe:
2te Compiler-Ausgabe:192.168.11.217
TCP zack:3389 192.168.11.217:1574 HERGESTELLT
{'platform_id': 500, 'ver_major': 5, 'computername': u'zacknotebook', 'ver_minor': 1, 'langroup': u'ARBEITSGRUPPE'}
Netstat vorm Ausführen:P zack:2468 192.168.11.217
TCP zack:2468 192.168.11.217:netbios-ssn SYN_GESENDET
---Errors---
Netstat nach dem "Normale Compiler-Ausgabe"-Vorgang:TCP zack:2460 va6.orb.com:85 SCHLIESSEN_WARTEN
TCP zack:3389 192.168.11.217:1574 HERGESTELLT
Offensichtlich nimmt er nun bei 2te Compiler-Ausgabe die unterste Netstat-Zeile.TCP zack:2460 va6.orb.com:85 SCHLIESSEN_WARTEN
TCP zack:2473 192.168.11.217:microsoft-ds WARTEND
TCP zack:2476 192.168.11.217:microsoft-ds HERGESTELLT
TCP zack:3389 192.168.11.217:1574 HERGESTELLT
TCP zack:2478 192.168.11.217:netbios-ssn SYN_GESENDET
Habs versucht etwas übersichtlicher zu machen.
Hoffe jemand kann mir dabei weiterhelfen.
gruss Zack
`str.find()` liefert -1 zurück falls nichts gefunden wird und -1 ist *wahr*, das heisst der ``if``-Zweig in der Schleife wird *immer* ausgeführt. Es sei denn '3389' steht am Anfang einer Zeile.
Mach daraus ein ``if '3389' in line:``.
Mach daraus ein ``if '3389' in line:``.