Und zwar habe ich mich an einem kleinem Remotetool versucht. Dazu benutze ich TCP. Das klappt bei mir zuHause auch schon gut. Nur wie schaffe ich es jetzt, dass ich mich mit Pcs Verbinden kann, die nicht in meinem lokalen Netzwerk sind. Ich verstehe es nicht.
Code:
Code: Alles auswählen
# -*- coding: cp1252 -*-
#RemoteServer
import socket, os
#----------Server & Cleint binden----------
sock = socket.socket (socket.AF_INET, socket.SOCK_STREAM) #socket einbinden
sock.bind (("", 50001)) #Clients binden
sock.listen (1) #Auf Verbindung mit Clients warten --> max. 1
conn, addr = sock.accept() #Verbindung aktzeptieren
print addr
#----------Kommandos ausführen----------
while True:
try:
command = conn.recv(1024) #Nachricht des Clients erwarten
if command == "EXIT": #beenden?
conn.close() #verbindung zum Client beenden
sock.close() #socket beenden
print ">> Beendet..."
break
else:
print ">> Empfangen: " + command
command_run = os.popen (command).read() #ausführen
if command_run:
conn.send(command_run) #senden
print ">> Gesendet: " + command_run
else:
conn.send ("Keine Ausgabe") #senden
print ">> Gesendet: Keine Ausgabe"
except:
continue
Code: Alles auswählen
# -*- coding: cp1252 -*-
#RemoteClient
import socket, os
#----------Client----------
while True:
try:
ip = raw_input ("IP-Adresse: ") #Abfrage der IPv4 des Servers
sock = socket.socket (socket.AF_INET, socket.SOCK_STREAM) #socket einbinden
sock.connect ((ip, 50001))
break
except:
print ">> Server nicht online"
continue
#----------CommandBox----------
while True:
try:
entry = raw_input ("Fortfahren(Y\N): ")
if entry == "Y" or entry == "y":
command = raw_input (">>> ") #Kommando Eingabe
try:
sock.send (command) #Kommando senden
print ">> Gesendet: " + command
except:
print ">> Senden fehlgeschlagen"
command_run = sock.recv (1024) #Auf Antwort des Servers warten
print ">> Empfangen: " + command_run
else:
sock.send ("EXIT")
sock.close()
print ">> Beendet..."
break
except:
print ">> Error"
Danke schonmal
Gruß Py4Fun