zoukankan      html  css  js  c++  java
  • python入门第二十七天——远程执行命令

     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 '''
     4 Administrator 
     5 2018/8/1 
     6 '''
     7 import socket
     8 # 创建一个socket:
     9     #family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None
    10     #创建Socket时,AF_INET指定使用IPv4协议,
    11     # 如果要用更先进的IPv6,就指定为AF_INET6
    12     # AF_UNIX Unix不同进程之间的通信
    13     #  SOCK_STREAM指定使用面向流的TCP协议 SOCK_DGRAM UDP协议
    14 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    15 print(s)
    16 address=('127.0.0.1',8000)
    17 #建立连接
    18 s.bind(address)
    19 #监听设置端口等待客户端的请求数量
    20 s.listen(3)
    21 
    22 
    23 print('等待...........')
    24 #accept 阻塞
    25 ###不允许发送空
    26 while True:
    27     # accept 阻塞
    28     conn, addr = s.accept()
    29     print(addr)
    30     while True:
    31         try:
    32             data = conn.recv(1024)
    33         except Exception:
    34             break
    35         if not data:
    36             conn.close()
    37             break
    38         print(data.decode("utf-8"))
    39 
    40         inp=input(">>>")
    41         conn.send(inp.encode('utf-8'))
    不间断聊天
     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 '''
     4 Administrator 
     5 2018/8/1 
     6 '''
     7 import socket
     8 
     9 sck=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    10 print(sck)
    11 address=('127.0.0.1',8000)
    12 sck.connect(address)
    13 while True:
    14     inp = input(">>>")
    15     if inp == 'exit':
    16         break
    17     sck.send(inp.encode('utf-8'))
    18 
    19     data=sck.recv(1024)
    20     print(data.decode("utf-8"))
    21 
    22 
    23 sck.close()
    不间断聊天——client
     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 '''
     4 Administrator 
     5 2018/8/1 
     6 '''
     7 import subprocess
     8 
     9 import socket
    10 
    11 # 创建一个socket:
    12     #family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None
    13     #创建Socket时,AF_INET指定使用IPv4协议,
    14     # 如果要用更先进的IPv6,就指定为AF_INET6
    15     # AF_UNIX Unix不同进程之间的通信
    16     #  SOCK_STREAM指定使用面向流的TCP协议 SOCK_DGRAM UDP协议
    17 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    18 print(s)
    19 address=('127.0.0.1',8000)
    20 #建立连接
    21 s.bind(address)
    22 #监听设置端口等待客户端的请求数量
    23 s.listen(3)
    24 
    25 
    26 print('等待...........')
    27 #accept 阻塞
    28 ###不允许发送空
    29 while True:
    30     # accept 阻塞
    31     conn, addr = s.accept()
    32     print(addr)
    33     while True:
    34         try:
    35             data = conn.recv(1024)
    36         except Exception:
    37             break
    38         if not data:
    39             conn.close()
    40             break
    41         data=str(data,"utf8")
    42         obj=subprocess.Popen(data,shell=True,stdout=subprocess.PIPE)
    43 
    44         info=obj.stdout.read()#取到执行后得到的结果erjinzhi
    45 
    46         conn.sendall(info)
    47 
    48         #inp=input(">>>")
    49         #conn.send(info.encode('utf-8'))
    cmd_server
     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 '''
     4 Administrator 
     5 2018/8/1 
     6 '''
     7 import socket
     8 
     9 sck=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    10 print(sck)
    11 address=('127.0.0.1',8000)
    12 sck.connect(address)
    13 while True:
    14     inp = input(">>>")
    15     if inp == 'exit':
    16         break
    17     sck.send(inp.encode('utf-8'))
    18 
    19     data=sck.recv(1024)#如果超过1024,就会阻塞
    20     for i in data:
    21         print(str(i,"gbk",errors="ignore"))
    22 
    23 
    24 sck.close()
    cmd_client

     1 Windows IP 配置
     2 
     3 
     4 以太网适配器 本地连接:
     5 
     6    连接特定的 DNS 后缀 . . . . . . . : 
     7    本地链接 IPv6 地址. . . . . . . . : fe80::ad1d:5018:876b:3d00%12
     8    IPv4 地址 . . . . . . . . . . . . : 192.168.0.100
     9    子网掩码  . . . . . . . . . . . . : 255.255.255.0
    10    默认网关. . . . . . . . . . . . . : 192.168.0.1
    11 
    12 以太网适配器 VMware Network Adapter VMnet1:
    13 
    14    连接特定的 DNS 后缀 . . . . . . . : localdomain
    15    本地链接 IPv6 地址. . . . . . . . : fe80::58b1:6045:38e4:ad72%15
    16    IPv4 地址 . . . . . . . . . . . . : 192.168.68.1
    17    子网掩码  . . . . . . . . . . . . : 255.255.255.0
    18    默认网关. . . . . . . . . . . . . : 
    19 
    20 以太网适配器 VMware Network Adapter VMnet8:
    21 
    22    连接特定的 DNS 后缀 . . . . . . . : localdomain
    23    本地链接 IPv6 地址. . . . . . . . : fe80::134:8b2e:21e2:7735%16
    24    IPv4 地址 . . . . . . . . . . . . : 192.168.198.1
    25    子网掩码  . . . . . . . . . . . . : 255.255.255.0
    26    默认网关. . . . . . . . . . . . . : 
    27 
    28 隧道适配器 isatap.{7FE544F2-9978-44D8-8B01-FCA6BF7A222D}:
    29 
    30    媒体状态  . . . . . . . . . . . . : 媒体已断开
    31    连接特定的 DNS 后缀 . . . . . . . : 
    32 
    33 隧道适配器 本地连接* 11:
    34 
    35    媒体状态  . . . . . . . . . . . . : 媒体已断开
    36    连接特定的 DNS 后缀 . . . . . . . : 
    37 
    38 隧道适配器 isatap.localdomain:
    39 
    40    媒体状态  . . . . . . . . . . . . : 媒体已断开
    41    连接特定的 DNS 后缀 . . . . . . . : localdomain
    View Code

     完整代码:

     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 '''
     4 Administrator 
     5 2018/8/1 
     6 '''
     7 import subprocess
     8 
     9 import socket
    10 
    11 # 创建一个socket:
    12     #family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None
    13     #创建Socket时,AF_INET指定使用IPv4协议,
    14     # 如果要用更先进的IPv6,就指定为AF_INET6
    15     # AF_UNIX Unix不同进程之间的通信
    16     #  SOCK_STREAM指定使用面向流的TCP协议 SOCK_DGRAM UDP协议
    17 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    18 print(s)
    19 address=('127.0.0.1',8000)
    20 #建立连接
    21 s.bind(address)
    22 #监听设置端口等待客户端的请求数量
    23 s.listen(3)
    24 
    25 
    26 print('等待...........')
    27 #accept 阻塞
    28 ###不允许发送空
    29 while True:
    30     # accept 阻塞
    31     conn, addr = s.accept()
    32     print(addr)
    33     while True:
    34         try:
    35             data = conn.recv(1024)
    36         except Exception:
    37             break
    38         if not data:
    39             conn.close()
    40             break
    41         data=str(data,"utf8")
    42         obj=subprocess.Popen(data,shell=True,stdout=subprocess.PIPE)
    43 
    44         info=obj.stdout.read()#取到执行后得到的结果二进制
    45         result_len=bytes(str(len(info)),"utf8")
    46         conn.send(result_len)
    47 
    48         conn.sendall(info)
    49 
    50         #inp=input(">>>")
    51         #conn.send(info.encode('utf-8'))
    server_cmd
     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 '''
     4 Administrator 
     5 2018/8/1 
     6 '''
     7 import socket
     8 
     9 sck=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    10 print(sck)
    11 address=('127.0.0.1',8000)
    12 sck.connect(address)
    13 while True:
    14     inp = input(">>>")
    15     if inp == 'exit':
    16         break
    17     sck.send(inp.encode('utf-8'))
    18     result_len=int(str(sck.recv(1024),"utf-8"))#先接受二进制的长度
    19     print(result_len)
    20     
    21     data=bytes()
    22     while len(data) !=result_len:
    23         recv=sck.recv(1024)
    24         data+=recv
    25     print(str(data,"gbk",errors="ignore"))
    26     #data=sck.recv(result_len)#如果超过1024,就会阻塞
    27     #print(str(data,"gbk",errors="ignore"))
    28 
    29    
    30  #   flage=True
    31  #   while flage:
    32    #     data =None
    33      #   data=sck.recv(1024)#如果超过1024,就会阻塞
    34        # print(str(data,"gbk",errors="ignore"))
    35         
    36         #if not data:
    37           #  flage=False
    38 
    39 
    40 sck.close()
    client_cmd


    沾包现象及解决办法:

     

  • 相关阅读:
    2019-2020-1学期20192409《网络空间安全专业导论》第十二周学习总结
    2019-2020-1学期20192409《网络空间安全专业导论》第十一周学习总结
    2019-2020-1学期2012409《网络空间安全专业导论》第十周学习总结
    2019-2020-1学期20192409《网络空间安全专业导论》第九周学习总结
    2019-2020-1学期20192409《网络空间安全专业导论》第八周学习总结
    第十二十三十四章脑图
    2019-2020-1学期20192409《网络空间安全专业导论》第七周学习总结
    2019-2020-1学期《网络空间安全专业导论》第六周学习总结
    2019-2020-1学期20192409《网络空间安全专业导论》第五周学习总结
    第八九章脑图
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/9401104.html
Copyright © 2011-2022 走看看