python下实现c/s模式远程操作

Seven 绯闻SEO 绯闻SEO,一个专注中小企业网站优化的SEO爱好者

c/s模式远程有点像服务器与客户端一样的,我们下面利用python来做一个简单的例子,有兴趣的和小编来学学.

实现目标:通过控制端,可以实现N台主机执行同一操作.

具体代码如下:

1、控制端代码:

  1. [root@361waytmp]#vimclient.py
  2. #!/usr/bin/envpython
  3. importsocket,os,sys
  4. ost=sys.argv[1]
  5. ?ort=4567
  6. forhostinos.popen('catip.list').readlines():
  7. printhost
  8. s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  9. s.connect((host,port))
  10. while1:
  11. data=sys.argv[2]
  12. ifnotdata:
  13. break
  14. s.sendall(data)
  15. data=s.recv(1024)
  16. ifnotdata:
  17. break
  18. printdata
  19. s.close()

2、被控制端代码

  1. [root@localhosttmp]#vimserver.py
  2. #!/usr/bin/envpython
  3. importsocket,os
  4. host=''
  5. port=4567
  6. s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  7. s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
  8. s.bind((host,port))
  9. s.listen(1)
  10. print"Serverisrunningonport%d;pressctrl-ctoterminate."%port
  11. while1:
  12. clientsock,clientaddr=s.accept()
  13. print"connectfrom%s"%str(clientaddr)
  14. clientfile=clientsock.makefile('rw',0)
  15. //phpfensi.com
  16. data=clientsock.recv(1024)
  17. command=os.popen(data).read()
  18. clientfile.write("%s"%command)
  19. clientfile.close()
  20. clientsock.close()

3、操作方法

ip.list里写server端的IP地址,每行一个,如:

1.1.1.1

2.2.2.2

使用方法,将server.py部署于目标主机上,执行server.py,客户端执行.python client.py ip.list "command"即可,示例如下:

  1. [root@361waytmp]#pythonclient.pyip.listifconfig
  2. 192.168.0.106
  3. eth0Linkencap:EthernetHWaddr52:54:00:D8:F3:E7
  4. inetaddr:192.168.0.106Bcast:192.168.0.255Mask:255.255.255.0
  5. inet6addr:fe80::5054:ff:fed8:f3e7/64Scope:Link
  6. UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
  7. RXpackets:627errors:0dropped:0overruns:0frame:0
  8. TXpackets:262errors:0dropped:0overruns:0carrier:0
  9. collisions:0txqueuelen:1000
  10. RXbytes:71041(69.3Kb)TXbytes:55281(53.9Kb)
  11. 192.168.0.110
  12. eth0Linkencap:EthernetHWaddr52:54:00:D7:F8:E7
  13. inetaddr:192.168.0.110Bcast:192.168.0.255Mask:255.255.255.0
  14. inet6addr:fe80::5054:ff:fed7:f8e7/64Scope:Link
  15. UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
  16. RXpackets:770errors:0dropped:0overruns:0frame:0
  17. TXpackets:438errors:0dropped:0overruns:0carrier:0
  18. collisions:0txqueuelen:1000//phpfensi.com
  19. RXbytes:87223(85.1KiB)TXbytes:69993(68.3KiB

相关广告
  • python下实现c/s模式远程操作 python下实现c/s模式远程操作 python下实现c/s模式远程操作
相关阅读

python下实现c/s模式远程操作

2019/10/10 17:45:05 | 谷歌SEO算法 | 5G标准出炉