Seite 1 von 1

Über Lan auf PC zugreifen

Verfasst: Dienstag 25. Mai 2010, 23:20
von Baconman
Hi,

Ich hatte in letzter Zeit immer wieder die Idee ein Tool zu schreiben mit dem ich einen Rechner im Lan quasi fernsteuern könnte.
Natürlich nicht wie z.B TeamViewer... ich dachte eher daran vielleicht der DOS-Konsole Befehle geben zu können.

Was ich weis ist, das ich ein Server Programm und einen Client brauche. Ich habe auch irgendwas mal von einem Modul gehört was extra zum kommunizieren zweier Rechner im Lan programmiert wurde.

Weis einer dazu mehr? Oder hat generell irgendwer etwas Hilfe für mich?

Socket kann ich etwas, reicht für einen IRC-Bot.

Danke für eure Antworten. :)

Re: Über Lan auf PC zugreifen

Verfasst: Dienstag 25. Mai 2010, 23:34
von Defnull
Sowas gibt es schon, nennt sich SSH und ist dazu sogar noch verschlüsselt.

Re: Über Lan auf PC zugreifen

Verfasst: Mittwoch 26. Mai 2010, 13:28
von Baconman
Aber SSH ist ja ein eigenständiges Programm. Oder kann ich das auch irgendwie in Python einbinden?

Mir geht es hier nicht um die Lösung eines Problemes sondern um den Spaß am Programmieren.

Re: Über Lan auf PC zugreifen

Verfasst: Mittwoch 26. Mai 2010, 14:56
von Hyperion
Baconman hat geschrieben: Mir geht es hier nicht um die Lösung eines Problemes sondern um den Spaß am Programmieren.
Da das Problem jedoch sehr technisch ist, steht der "Spaß am Programmieren" hier imho eher im Hintergrund. Suche Dir lieber ein Problem, welches weniger technisch orientiert ist.

Re: Über Lan auf PC zugreifen

Verfasst: Mittwoch 26. Mai 2010, 15:13
von Baconman
Ich habe mir das ja extra ausgesucht, weil ich denke das es mir Spaß machen wird.

Kann mir vielleicht einer mal kurz einen Vorgeschmack davon geben auf was ich mich hier einlasse :mrgreen: damit ich einschätzen kann in wiefern es mir zu technisch ist.

Re: Über Lan auf PC zugreifen

Verfasst: Mittwoch 26. Mai 2010, 15:25
von Hyperion
Naja, Du könntest via XML-RPC (oder JSON-RPC) die Kommunikation zwischen einen Server und einen Client implementieren.

Der Server muss auf dem Rechner laufen, den Du fernsteuerst. Letztlich könntest Du ungefiltert einfach im Server per subprocess-Modul einen beliebigen Befehl ausführen, der vorher übers Netzwerk übertragen wurde.

Auf Client Seite brauchst Du nur eine simple Input-Methode, bei der Du die Kommandos eintragen kannst, die abgesendet werden sollen.

Das ist so gesehen nicht unbedingt aufwendig.
Allerdings missachtet das natürlich komplett sämtliche Sicherheitsregeln... aber wenn 's Dir so viele Spaß bringt.

Re: Über Lan auf PC zugreifen

Verfasst: Mittwoch 26. Mai 2010, 16:12
von Leonidas
Baconman hat geschrieben:Aber SSH ist ja ein eigenständiges Programm. Oder kann ich das auch irgendwie in Python einbinden?
Ja kannst du, die passende Python-Library heißt paramiko.

Re: Über Lan auf PC zugreifen

Verfasst: Donnerstag 27. Mai 2010, 00:37
von Baconman
So bin erstmal etwas vom Gas gegangen und versuche jetzt einen Netzwerk/Internet Chat zu schreiben.

Was ich habe:

Server:

Code: Alles auswählen

#Server

from threading import Thread
import socket
import sys

#########################Funktionen######################

def abfangen():
    while 1:
        data = client.recv(4096)
        print data

#########################################################

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

host = ''
port = 6022

server.bind((host, port))
server.listen(5)
(client, address) = server.accept()

t_abfangen = Thread(target = abfangen, args = ())
t_abfangen.start()

while 1:
    string = raw_input('')
    client.send(string)

Client:

Code: Alles auswählen

#client

from threading import Thread
import socket
import sys

#########################Funktionen######################

def abfangen():
    while 1:
        data = client.recv(4096)
        print data

#########################################################

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

host = 'localhost'
port = 6022

client.connect((host, port))

t_abfangen = Thread(target = abfangen, args = ())
t_abfangen.start()

while 1:
    string = raw_input('')
    client.send(string)
Das Problem ist nun das ich das was der Client los schickt auf dem Server sofort erhalte. Wenn ich aber versuche vom Server eine Nachricht an den Client zu schicken passiert nichts. Schicke ich aber daraufhin eine Nachricht vom Client an den Server erhalte ich auf dem Client auch die vorher vom Server losgeschickte Nachricht.

Ist das zufällig verständlich? :mrgreen:

Sieht einer von euch den Fehler?

Danke schon mal :)

Re: Über Lan auf PC zugreifen

Verfasst: Donnerstag 27. Mai 2010, 08:39
von Hyperion
Muss es denn für den Anfang wirklich das socket-Modul sein? Wieso so low-level?

Re: Über Lan auf PC zugreifen

Verfasst: Donnerstag 27. Mai 2010, 11:48
von rads
Muss Hyperion da nur zustimmen.

Ein Chat schreiben ist ja vielleicht ganz lustig. Letztes Semester haben wir genau das einmal über Sockets (UDP) und einmal über RMI gemacht.

Ich kann Jedem nur rmi empfehlen, nimmt dir die ganze Protokolldefinition ab und ist bei weitem nicht so fehleranfällig. Natürlich machen wir alle keine Fehler, nur ich und deswegen find ich rmi so schön.

Für Python sollte das "Vergleichsprodukt" Pyro sein. http://pyro.sourceforge.net/

Glaube meinem Vorredner und mir, damit hast du mehr Spaß und lernst zusätzlich was Neues und auch in der praxis oft verwendetes.