zoukankan      html  css  js  c++  java
  • 基于TCP_socket套接字实现远程执行命令

    基于tcp的套接字实现远程执行命令的操作

    ——客户端敲命令,服务端执行

    #服务端
     
    import socket
    import subprocess
    phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    ip_port=("127.0.0.1",8080)
    phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    phone.bind(ip_port)
    phone.listen(5)
     
    while True:
        conn,addr=phone.accept()
        print(addr)
        while True:
            try:
                cmd=conn.recv(1024)
                res=subprocess.Popen(cmd.decode("utf8"),
                                     shell=True,
                                     stdout=subprocess.PIPE,
                                     stderr=subprocess.PIPE)
     
    #注释掉的这么多行,是因为在linux系统下同时执行多条命令,命令中如果有对有错的话res.stderr.read()和res.stdout.read()都会有返回值。
                #err=res.stderr.read()       
                #if err:
                #   cmd_res=err
                #else:
                #    cmd_res=res.stdout.read()
                #conn.send(cmd_res)
    #修改为:
                conn.send(res.stdout.read())
                conn.send(res.stderr.read())
     
            except Exception:
                break
        conn.close()
    phone.close()
    #客户端
     
    import socket
    phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    phone.connect(("192.168.85.129",8080))
    while True:
        cmd=input(">>:").strip()
        if not cmd:continue
        phone.send(cmd.encode("utf8"))
        data=phone.recv(8192)        #当命令行打印的东西太长时,接收超过1024,所以这里修改为8192
        print(data.decode("utf8"))        #当服务端运行在linux系统下,为utf8;服务端在windows下运行时,为gbk
     
    phone.close()

    当服务端运行在Windows系统下,若客户端发送给服务端识别window系统的命令,服务端将执行windows系统命令的结果发送给客户端显示,不能识别的则发送错误信息给客户端。

    同样当服务端在linux系统下运行,若客户端发送给服务端识别linux系统的命令,服务端将执行windows系统命令的结果发送给客户端显示,不能识别的则发送错误信息给客户端。

  • 相关阅读:
    斜二进制数
    贝贝的波浪数
    1058: 电文保密
    1065: 贝贝的加密工作
    低危漏洞- X-Frame-Options Header未配置
    1064: 不明飞行物(ufo)
    支付
    1067: 密室寻宝(find)
    c++10进制转换为任意2-16进制数字
    1066: 单词游戏(game)
  • 原文地址:https://www.cnblogs.com/bigtreei/p/7929750.html
Copyright © 2011-2022 走看看