• 模拟ssh发送cmd指令


    模拟ssh发送cmd指令

    服务端

    import socket
    import subprocess
    
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    server.bind(('127.0.0.1', 8087))
    server.listen(5)
    print('wait...')
    
    while True:
        conn, client_addr = server.accept()
        print(client_addr)
        
        while True:
            try:
                cmd = conn.recv(1024)
                print(cmd)
                
                pipeline = subprocess.Popen(cmd.decode('utf-8'),
                                           shell=True,
                                           stderr=subprocess.PIPE, # 报错信息
                                           stdout=subprocess.PIPE) # 返回信息
                # 获取两个信息
                stuout = pipeline.stdout.read()
                stderr = pipeline.stderr.read()
                
                # 也可以写成,if和else,不过这两个一般只会出现一个,所以这样写也没问题
                conn.send(stuout+stderr)
            except ConnectionResetError:
                break
    

    客户端

    import socket
    
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect(('127.0.0.1', 8087))
    
    while True:
        # 这里就可以输入一个cmd中的命令了,如ipconfig, dir等,但有一些输入过长的命令无法获取
        msg = input('please your enter msg').strip()
        client.send(msg.encode('utf-8'))
        
        cmd = client.recv(1024)
        print(cmd.decode("gbk"))
    
  • 相关阅读:
    jquery实现回车键执行ajax
    php post请求
    题解 P2825 【[HEOI2016/TJOI2016]游戏】
    莫队
    一些关于数学的知识(总结)
    P3232[HNOI2013]游走
    万物生长 / Tribles
    [BZOJ4244]邮戳拉力赛
    P1095 守望者的逃离
    P3953 逛公园
  • 原文地址:https://www.cnblogs.com/lucky75/p/11098922.html
Copyright © 2020-2023  润新知