python下实现c/s模式远程操作
2019/10/10/17:45:05 阅读:2007 来源:谷歌SEO算法 标签:
5G标准出炉
c/s模式远程有点像服务器与客户端一样的,我们下面利用python来做一个简单的例子,有兴趣的和小编来学学.
实现目标:通过控制端,可以实现N台主机执行同一操作.
具体代码如下:
1、控制端代码:
- [root@361waytmp]#vimclient.py
- #!/usr/bin/envpython
- importsocket,os,sys
- ost=sys.argv[1]
- ?ort=4567
- forhostinos.popen('catip.list').readlines():
- printhost
- s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
- s.connect((host,port))
- while1:
- data=sys.argv[2]
- ifnotdata:
- break
- s.sendall(data)
- data=s.recv(1024)
- ifnotdata:
- break
- printdata
- s.close()
2、被控制端代码
- [root@localhosttmp]#vimserver.py
- #!/usr/bin/envpython
- importsocket,os
- host=''
- port=4567
- s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
- s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
- s.bind((host,port))
- s.listen(1)
- print"Serverisrunningonport%d;pressctrl-ctoterminate."%port
- while1:
- clientsock,clientaddr=s.accept()
- print"connectfrom%s"%str(clientaddr)
- clientfile=clientsock.makefile('rw',0)
- //phpfensi.com
- data=clientsock.recv(1024)
- command=os.popen(data).read()
- clientfile.write("%s"%command)
- clientfile.close()
- 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"即可,示例如下:
- [root@361waytmp]#pythonclient.pyip.listifconfig
- 192.168.0.106
- eth0Linkencap:EthernetHWaddr52:54:00:D8:F3:E7
- inetaddr:192.168.0.106Bcast:192.168.0.255Mask:255.255.255.0
- inet6addr:fe80::5054:ff:fed8:f3e7/64Scope:Link
- UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
- RXpackets:627errors:0dropped:0overruns:0frame:0
- TXpackets:262errors:0dropped:0overruns:0carrier:0
- collisions:0txqueuelen:1000
- RXbytes:71041(69.3Kb)TXbytes:55281(53.9Kb)
- 192.168.0.110
- eth0Linkencap:EthernetHWaddr52:54:00:D7:F8:E7
- inetaddr:192.168.0.110Bcast:192.168.0.255Mask:255.255.255.0
- inet6addr:fe80::5054:ff:fed7:f8e7/64Scope:Link
- UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
- RXpackets:770errors:0dropped:0overruns:0frame:0
- TXpackets:438errors:0dropped:0overruns:0carrier:0
- collisions:0txqueuelen:1000//phpfensi.com
- RXbytes:87223(85.1KiB)TXbytes:69993(68.3KiB
热门评论