签到成功

知道了

CNDBA社区CNDBA社区

Python 实现关闭同网段IP 主机

2017-05-18 14:00 2078 2 原创 Python
作者: leo
        仅以此纪念Python学习的开端,在戴总( http://www.cndba.cn/dave )的指导下,终于完成第一个Python 小工具的编写,基本了解Python 编写的步骤及方法。
实现功能:
    为了实现192.168.1.0 同网段的其他主机一键关机的功能(前提是 username:root passwd;123456 一致密码 port : 22),执行这个脚本可以关掉192.168.1.0 同网段的所有主机。
代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import time
import re
import paramiko
#from IPy import IP

#ip_ping函数 获取到的地址写入到ip.list文件里(python 在哪个目录执行就生成在哪个目录)
def ip_ping()(ipaddr):
	#ipaddr = "192.168.1.120"
	str = """ping """ + ipaddr + """ -c 4 """
	str1 = os.popen(str).readlines()
	str2 = "".join(str1).find("Unreachable")
	if  str2 == -1 :
		file = open("ip.list", "a")
		file.write(ipaddr+'/n')
		file.close()
		print ipaddr
	else :
		print "false"
#ssh_down()函数 实现读取ip.list文件中ip 地址列表 并ssh 远程主机并关闭
def ssh_down():
	username="root"
	port=22
	password = "123456"
	file = open("ip.list")
	for line in file:
		hostname = str(line .split("/t")[0])
		#password = str(line .split("/t")[1]).strip()
		#print "##################",hostname,"######################",password
		s = paramiko.SSHClient()
		s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
		s.connect(hostname,port,username,password)
		cmd = 'shutdown -h now'
		stdin,stdout,sterr=s.exec_command(cmd)
		print stdout.read()
		s.close()
	file.close()
#ip_cycle() 函数实现循环获取1网段地址,并调用函数ip_ping()
def ip_cycle():
	#ip = IP('192.168.56.0/24')
	#ip=['192.168.56.64','192.168.56.65']
	file = '/python/ip.list'
	if os.path.exists(file):
		os.remove(file)
	for x in range(2,255,1):
		y = "192.168.1." + str(x)
		if y != '192.168.1.100':
			ip_ping(y)
	#脚本所在的主机IP 最后调用函数ip_ping 使之追加到最后才关闭当前脚本所在主机
	ip_ping('192.168.1.100')
if __name__ =='__main__':
	ip_cycle()
	ssh_down()
http://www.cndba.cn/cndba/leo1990/article/1915
http://www.cndba.cn/cndba/leo1990/article/1915
http://www.cndba.cn/cndba/leo1990/article/1915
http://www.cndba.cn/cndba/leo1990/article/1915
http://www.cndba.cn/cndba/leo1990/article/1915
http://www.cndba.cn/cndba/leo1990/article/1915
http://www.cndba.cn/cndba/leo1990/article/1915 http://www.cndba.cn/cndba/leo1990/article/1915 http://www.cndba.cn/cndba/leo1990/article/1915 http://www.cndba.cn/cndba/leo1990/article/1915

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
leo

leo

关注

坚持你的坚持

  • 202
    原创
  • 0
    翻译
  • 39
    转载
  • 16
    评论
  • 访问:766166次
  • 积分:1270
  • 等级:核心会员
  • 排名:第8名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ