Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: painpills en 15 Noviembre 2022, 23:59 pm



Título: Python - dar formato a b"informacion"
Publicado por: painpills en 15 Noviembre 2022, 23:59 pm
Hola, tengo una duda, estoy aprendiendo a utilizar sockets en python, y lo que estoy intentando es, que el cliente se conecte al programa servidor y desde el servidor yo poder ejecutar comandos en la computadora cliente y esta me devuelva los resultados


estoy usando la biblioteca subprocess para ejecutar el comando y almacenar el resultado en una variable pero luego de enviarla el servidor la recibe de esta manera:

Quiero saber como puedo darle formato para que me lo muestre correctamente, estoy intentando ejecutar el comando dir en windows


(https://i.ibb.co/6Yv0rCF/resultado.png) (https://ibb.co/VVHYJ4T)




Codigo Cliente:

import socket
import subprocess


def ejecutar_comando(command):
   return subprocess.check_output(command, shell=True)


HOST = 'localhost'
PORT = 6123

cliente = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
cliente.connect((HOST,PORT))

while True:
   command = cliente.recv(1024)
   command = command.decode('utf-8')
   resultados_comando = ejecutar_comando(command)
   cliente.send(resultados_comando)

cliente.close()



Código Servidor:

import socket


HOST = 'localhost'
PORT = 6123

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST, PORT))
server.listen()

print("Esperando conexiones...")

conn, addr = server.accept()

print("Conexión establecida con" + str(addr))

while True:
   command = input("Shell<<<:")
   conn.send(command.encode('utf-8'))
   resultado_comando = conn.recv(1024)
   print(resultado_comando)

conn.close()