c/s模式远程有点像服务器与客户端一样的,我们下面利用python来做一个简单的例子,有兴趣的和小编来学学.
实现目标:通过控制端,可以实现N台主机执行同一操作.
具体代码如下:
1、控制端代码:
[root@361way tmp]# vim client.py
#!/usr/bin/env python
import socket,os,sys
ost=sys.argv[1]
?ort=4567
for host in os.popen('cat ip.list').readlines():
print host
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
while 1:
data=sys.argv[2]
if not data:
break
s.sendall(data)
data=s.recv(1024)
if not data:
break
print data
s.close()
2、被控制端代码
[root@localhost tmp]# vim server.py
#!/usr/bin/env python
import socket,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 "Server is running on port %d; press ctrl-c to terminate." % port
while 1:
clientsock,clientaddr=s.accept()
print "connect from %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"即可。