python下实现c/s模式远程操作
发布:smiling 来源: PHP粉丝网 添加日期:2015-05-05 14:12:15 浏览: 评论:0
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"即可,示例如下:
- [root@361way tmp]# python client.py ip.list ifconfig
 - 192.168.0.106
 - eth0 Link encap:Ethernet HWaddr 52:54:00:D8:F3:E7
 - inet addr:192.168.0.106 Bcast:192.168.0.255 Mask:255.255.255.0
 - inet6 addr: fe80::5054:ff:fed8:f3e7/64 Scope:Link
 - UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 - RX packets:627 errors:0 dropped:0 overruns:0 frame:0
 - TX packets:262 errors:0 dropped:0 overruns:0 carrier:0
 - collisions:0 txqueuelen:1000
 - RX bytes:71041 (69.3 Kb) TX bytes:55281 (53.9 Kb)
 - 192.168.0.110
 - eth0 Link encap:Ethernet HWaddr 52:54:00:D7:F8:E7
 - inet addr:192.168.0.110 Bcast:192.168.0.255 Mask:255.255.255.0
 - inet6 addr: fe80::5054:ff:fed7:f8e7/64 Scope:Link
 - UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 - RX packets:770 errors:0 dropped:0 overruns:0 frame:0
 - TX packets:438 errors:0 dropped:0 overruns:0 carrier:0
 - collisions:0 txqueuelen:1000 //phpfensi.com
 - RX bytes:87223 (85.1 KiB) TX bytes:69993 (68.3 KiB
 
Tags: python c s模式远程
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
 - PHP新手上路(一)(7)
 - 惹恼程序员的十件事(5)
 - PHP邮件发送例子,已测试成功(5)
 - 致初学者:PHP比ASP优秀的七个理由(4)
 - PHP会被淘汰吗?(4)
 - PHP新手上路(四)(4)
 - 如何去学习PHP?(2)
 - 简单入门级php分页代码(2)
 - php中邮箱email 电话等格式的验证(2)
 
