Recuperer dans une variable, les resultats d'une commande DOS
bonjour, j'utilise le Windows 7, et la version de mon python est 3.4...
j'aimerai si possible, envoie un commande DOS a travers le socket,
et en récupérer le résultats de cet commande dans un variable a fin d'exploiter.
mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
def Serveur():
HOST ='0.0.0.0'
PORT =19111
counter =0
identify ="A111 "
mySocket =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mySocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
try:
mySocket.bind((HOST, PORT))
except socket.error:
sys.exit()
while 1:
mySocket.listen(2)
connexion, adresse =mySocket.accept()
counter +=1
msgServeur ="Vous etez connecter au: "+ identify
connexion.send(msgServeur.encode("Utf8"))
msgClient =connexion.recv(1024).decode("Utf8")
while 1:
if msgClient.upper() =="pfb" or msgClient =="s":
break
else:
res =os.system(msgClient)
true =res.readlines()
msgServeur =true
connexion.send(msgServeur.encode("Utf8"))
msgClient =connexion.recv(1024).decode("Utf8") |
Se servir d'un fichier comme canal de communication a travers le socket
Bonjour,
voici le code server:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
#-*-coding: Utf-8 -*-
############################# IMPORTATION DES MODULES ##########################
import sys, os
import socket
import threading
###########################################################################
def Serveur():
HOST ='0.0.0.0'
PORT =19111
counter =0
identify ="Cyber A1 "
mySocket =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mySocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
try:
mySocket.bind((HOST, PORT))
except socket.error:
sys.exit()
while 1:
mySocket.listen(2)
connexion, adresse =mySocket.accept()
counter +=1
msgServeur ="Vous etez connecter au: "+ identify
connexion.send(msgServeur.encode("Utf8"))
msgClient =connexion.recv(1024).decode("Utf8")
while 1:
if msgClient.upper() =="pfb" or msgClient =="s":
break
else:
res =os.system(msgClient)
tru =(res)
true =[tru]
"""Vas! mersi"""
true1 = str(true)
msgServeur =true1
connexion.send(msgServeur.encode("Utf8"))
msgClient =connexion.recv(1024).decode("Utf8")
################################################################################
def Envoie():
while 2:
ofich ='nom_fichier'
rf =open(ofich, "rb")
tr =rf.readlines()
connexion.send(tr.encode("Uft8"))
msgClient =connexion.recv(1024).decode("Utf8")
################################################################################
if __name__ =='__main__':
try:
Serveur()
Envoie()
except ConnectionResetError:
os.system("start /MIN server.py") |
grace ceci je peux envoie des commandes DOS par le billet de socket.
pour cela une simple commande : cmd>nom_fichier depuis le client, créeras un fichier: nom_fichier.
et tous le commandes qui suivrons serons inscrit dans nom_fichier, mais alors mon problème de consulter
en temps réel le fichier: nom_fichier.
l'objectif de lire le contenus de nom_fichier en permanent.
mon problème est de pouvoir consulter nom_fichier depuis l'interface client.
pour c'est qu'il en est de client, voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#-*-coding: Utf-8 -*-
############################# Importation des modules ##########################
import socket
import sys, os
################################################################################
def Client():
HOST ='localhost'
PORT =19111
mySocket =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
mySocket.connect((HOST, PORT))
except socket.error:
print("Machine Eteint.")
sys.exit
print("connexion au serveur établie")
msgServeur =mySocket.recv(1024).decode("Utf8")
while 1:
if msgServeur.upper() =="Attention" or msgServeur =="tchip":
break
print(msgServeur)
msgClient =input("CMD *> ")
mySocket.send(msgClient.encode("Utf8"))
print("Veillez pacienter... ")
msgServeur = mySocket.recv(1024).decode("Utf8")
Recept()
################################################################################
def Recept():
while 2:
texto ="Reçut"
ofich ='systeminfo'
rf =open(ofich, "wb")
sen =mySocket.recv(1024).decode("Utf8")
tr =rf.write(sen)
connexion.send(texto.encode("Utf8"))
################################################################################
if __name__ =='__main__':
try:
Client()
except IOError:
while 1:
os.system("start client.py") |