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.
Über Lan auf PC zugreifen
- Defnull
- User
- Beiträge: 778
- Registriert: Donnerstag 18. Juni 2009, 22:09
- Wohnort: Göttingen
- Kontaktdaten:
Sowas gibt es schon, nennt sich SSH und ist dazu sogar noch verschlüsselt.
Bottle: Micro Web Framework + Development Blog
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.
Mir geht es hier nicht um die Lösung eines Problemes sondern um den Spaß am Programmieren.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
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.Baconman hat geschrieben: Mir geht es hier nicht um die Lösung eines Problemes sondern um den Spaß am Programmieren.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
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 damit ich einschätzen kann in wiefern es mir zu technisch ist.
Kann mir vielleicht einer mal kurz einen Vorgeschmack davon geben auf was ich mich hier einlasse damit ich einschätzen kann in wiefern es mir zu technisch ist.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
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.
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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja kannst du, die passende Python-Library heißt paramiko.Baconman hat geschrieben:Aber SSH ist ja ein eigenständiges Programm. Oder kann ich das auch irgendwie in Python einbinden?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
So bin erstmal etwas vom Gas gegangen und versuche jetzt einen Netzwerk/Internet Chat zu schreiben.
Was ich habe:
Server:
Client:
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?
Sieht einer von euch den Fehler?
Danke schon mal
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)
Ist das zufällig verständlich?
Sieht einer von euch den Fehler?
Danke schon mal
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Muss es denn für den Anfang wirklich das socket-Modul sein? Wieso so low-level?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
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.
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.