Python中调用Ping命令,批量IP
来源:互联网 发布:人肉搜索网络团队论坛 编辑:程序博客网 时间:2024/04/26 10:41
#!/usr/bin/env python#coding:UTF-8'''''''
Author: jefferchen@163.com
可在命令行直接带目的IP,也可将IP列表在文本文件中。
pingip.py -d DestIP
DestIP示例: a)单个: 192.168.11.1
b)多个: 192.168.11.1;172.16.8.1;176.13.18.2
c)网段: 192.168.11.1-127
文本文件:ip.txt
目的IP多行存储
'''''''import argparseimport osimport platformimport time,datetimedef PingCmd(): cmdStr = '' if platform.system()=='Linux': cmdStr = 'ping -c 1 %s > /dev/null' else: cmdStr = 'ping -n 1 %s > nul' return cmdStrdef IPV4SegList(aList): IPSeg = aList[0].split('.') IP4Begin = int(IPSeg[3]) IP4End = int(aList[1]) segList = [] if IP4End<=IP4Begin: IP4End += IP4Begin else: IP4End +=1 for ip in range(IP4Begin,IP4End): aIP = IPSeg[0]+'.'+IPSeg[1]+'.'+IPSeg[2]+'.'+str(ip) segList += [aIP] return segListdef ParseSeg(aSeg): segList = [] aList = aSeg.split('-') if len(aList)==2: segList = IPV4SegList(aList) else: segList = aList return segListdef AddLineIP(IPList,aLine): LineList = aLine.split(';') for aSeg in LineList: segList = ParseSeg(aSeg) IPList += segList return IPListdef GetIPListFromFile(filename): IPList = [] f = open(filename) lines = f.readlines() for line in lines: line = line.strip() line = line.replace('\n','') IPList = AddLineIP(IPList,line) return IPListdef NotifyAdmin(failureIP): print('Network error at ',failureIP)def ReportSummary(success,failure): print('----DONE! Total: %s nodes. %s ---'%(success+failure,timeFmt()))def PingList(aList): sucess,failure = 0,0 failureIP = [] print('Trying...') for ip in aList: cmdStr = PingCmd()%ip.replace('\n','') res = os.system(cmdStr) if res < 1 : sucess += 1 else: failure += 1 failureIP += [ip] time.sleep(1) if failure : NotifyAdmin(failureIP) else: ReportSummary(sucess,failure);def timeFmt(): return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))def writeLog(content): print('[%s] %s' % (timeFmt(), content)) file_object = open('ping.' + time.strftime('%Y-%m-%d', time.localtime(time.time())) + '.log', 'a') file_object.write('[%s] %s\n' % (timeFmt(), content)); file_object.close()if __name__ == '__main__': parse = argparse.ArgumentParser(description='Batch ping utility.') parse.add_argument('-f','--filename',default='ip.txt',help='IP file name(Default IP.txt)') parse.add_argument('-d','--destip',type=str,default='',help='destination IPs '); args = parse.parse_args() if args.destip!='': IPList = AddLineIP([],args.destip) else: if args.filename!='': IPFile = args.filename else: IPFile = 'ip.txt' IPList = GetIPListFromFile(IPFile) PingList(IPList)
阅读全文
0 0
- Python中调用Ping命令,批量IP
- python批量ping内网ip
- python从oracel中提取ip信息并批量ping后保存
- 批量ping ip地址
- 批量ping域名获取ip
- Linux ping ip命令
- Python ping ip
- ping命令java调用
- c#调用ping命令
- Java ping命令,查看ip是否在网络中连接
- Qt5.2中使用ping命令实现Ip扫描功能
- awk中调用系统命令批量处理
- shell 编写脚本批量ping ip
- 命令行批量修改IP并ping测试
- 命令行批量修改IP并ping测试
- linux批量ping文件中的ip
- Linux 停止ping ip 命令
- 在Jsp页面中调用Ping命令---PingIP.jsp
- Java中9种IO的读取方式
- Eclipse:Outline is disabled due to scalability mode
- 快速自动化适配iPhone X
- Maven 仓库介绍
- 阿里云CentOS7.2清除wnTKYg木马
- Python中调用Ping命令,批量IP
- HashMap底层原理
- git log
- MySQL-索引与优化
- 类型转换器
- bind函数详解
- 回溯法解决八皇后问题
- Java中在特定区间产生随机数和随机字符
- A new Graph Game HDU