zoukankan      html  css  js  c++  java
  • 网络编程-socket模拟ssh远程登录执行命令

    补充:

    Windows:

    dir:查看目录下的子文件夹名和子文件名

    ipconfig:查看本地网卡的ip信息

    tasklist:查看运行进程

    Linux:

    ls:查看目录下的子文件夹名和子文件名

    ifconfig:查看本地网卡的ip信息

    ps aux:查看运行进程

    执行系统命令并拿到结果:

    os.system():执行结果并返回命令是否执行成功的标志,0表示成功,非0表示执行失败

    subprocess.Popen(cmd,shell=True):执行结果并返回结果

    import subprocess
    obj=subprocess.Popen('dir',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    obj.stdout.read()
    obj.stderr.read()

      server端

    import socket,os
    import subprocess
    phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    phone.bind(('127.0.0.1',8080))
    phone.listen(5)
    while True:
        conn,client_addr=phone.accept()
        print(client_addr)
        while True:
            try:
                #1、接收命令
                cmd=conn.recv(1024)
                if not cmd: break
                #2、执行命令并拿到结果
                obj=subprocess.Popen(cmd.decode('gbk'),shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
                stdout=obj.stdout.read()
                stderr=obj.stderr.read()
                #3、发送命令结果
                conn.send(stdout+stderr)#“+”号需要优化
            except ConnectionResetError:
                break
        conn.close()#连接关闭
    phone.close()#套接字关闭

      client端

    import socket
    client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    client.connect(('127.0.0.1',8080))
    
    while True:
        #1、发送命令
        cmd=input('>> ').strip()
        if not cmd:continue
        client.send(cmd.encode('gbk'))
        #2、拿到结果并打印
        data=client.recv(1024).decode('gbk')#1024是坑
        print(data)
    client.close()

     客户命令执行

     

  • 相关阅读:
    pycharm在401跑程序需要每个py文件加一句
    youtube下载视频方法
    服务器重启登陆界面死循环
    matlab2012b_win_install
    ubuntu_matlab2012b_install
    cuda8.0 + cudnn6 + tensorflow1.4 xing
    [BAT] cmd 管理员权限 右键菜单 运行
    Windows下遍历所有GIT目录更新项目脚本
    获取Xshell Xftp等官网下载地址
    Win10 企业版 激活 批处理
  • 原文地址:https://www.cnblogs.com/yaya625202/p/8949274.html
Copyright © 2011-2022 走看看