python调用ping命令_在Python中调用Ping命令,批量IP的方法
#!/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 argparse
import os
import platform
import time,datetime
def PingCmd():
cmdStr = ''
if platform.system()=='Linux':
cmdStr = 'ping -c 1 %s > /dev/null'
else:
cmdStr = 'ping -n 1 %s > nul'
return cmdStr
def 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 segList
def ParseSeg(aSeg):
segList = [] aList = aSeg.split('-')
if len(aList)==2:
segList = IPV4SegList(aList)
else:
segList = aList
return segList
def AddLineIP(IPList,aLine):
LineList = aLine.split(';')
for aSeg in LineList:
segList = ParseSeg(aSeg)
IPList += segList
return IPList
def 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 IPList
def 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] %sn' % (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 ');
python调用ping命令_在Python中调用Ping命令,批量IP的方法相关推荐
- linux 查找py文件命令_在 Linux 中如何从命令行查找 VirtualBox 版本
如果你想知道如何在 Linux 中从命令行查找 VirtualBox 版本,可以采用以下几种方法. -- Sk(作者) 我使用 Oracle VirtualBox 和 KVM 虚拟化程序 测试不同的 ...
- linux tr 命令_在Linux中使用tr命令玩角色
linux tr 命令 tr command in Linux translates one set of characters to another. It can replace a charac ...
- linux comm命令_在Linux中使用Comm命令比较文件
linux comm命令 Linux have a lot of tools to compare files. These tools provides a lot of powerful feat ...
- ajax 调用java类_在ajax中调用java方法
AJAX是Asynchronous JavaScript And XML的首字母缩写.它提供了异步与服务器通信的能力. 要简单地解释一下,您可以向服务器发送请求并继续与用户进行用户交互.您无需等待服务 ...
- mysql视图中调用函数写法_从视图中调用函数
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 为VMware虚拟机中的Linux系统设置固定IP的方法
这篇文章主要介绍了为VMware虚拟机中的Linux系统设置固定IP的方法,包括以nat方式固定ip上网的方法,需要的朋友可以参考下 1.配置DNS: 修改 /etc/resolv.conf 文件,添 ...
- python中执行linux命令(调用linux命令)_常见Python中调用Linux命令
有时候我们需要从Python中执行Linux命令,下面就介绍几种方法? 1. os 模块: 1.1 os.system 函数: system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果. ...
- python运行命令_对python中执行DOS命令的3种方法总结
1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...
- python如何封装成可调用的库_在python中如何以异步的方式调用第三方库提供的同步API...
在关于asyncio的基本用法中提到,asyncio并不是多线程.在协程中调用同步(阻塞函数),都占用同一线程的CPU时间,即当前线程会被阻塞(即协程只会在等待一个协程时可能出让CPU,如果是普通函数 ...
- python中execute函数_在excel中调用python函数
效果: 通过excel引用在py文件中写好的load_settle()函数,可以快捷的获取对应的历史结算价. 使用方法: 1.首先安装office,我用的是2016版本. 2.安装python,推荐使 ...
最新文章
- linux cp -d复制软链接文件
- 使用Docker启动Grafana环境
- 第四十六期:最近程序员频繁被抓,如何避免面向监狱编程?!
- Java——容器(泛型)
- Übersicht for mac(自定义桌面工具)v1.6(68)最新版
- java开发注意事项
- 苹果画画软件_想在iPad 上画画,推荐用这些软件
- pyhong爬虫——大众点评——用户信息
- 曾被网友疯狂恶搞的「蚂蚁呀嘿」项目开源上过GitHub热榜
- OpenCV图像特征SIFT
- c语言航班管理系统报告,c航班管理系统课程设计报告.doc
- uniapp 自定义弹层时,底部页面滚动而弹层不能滚动
- 制作淘宝客微信公众号(二)
- 在阿里云上安装MySQL的简单教程
- 联结主义时间分类(Connectionist temporal classification)的论文笔记
- Wu反走样算法绘制直线段
- 如何使用vue实现搜索输入框实时查询显示
- Mac 常用软件记录
- 作为Java开发者,查看mysql端口
- 调用opencv库进行身份证号码识别主要流程
热门文章
- android 水平进度条 自定义颜色,android 水平进度条的颜色设置
- ENSP配置 实例九 动态Nat配置
- linux依据时间过滤文件,详解Linux查找目录下的按时间过滤的文件
- 关于微信浏览器H5 React,Vue工程化项目input无法自动聚焦疑难杂症排查
- git安装 perl ubuntu_ubuntu下安装git
- spark 数据框 删除列_pandas 常用的数据处理函数
- ado.net mysql 连接池_ADO.NET数据连接池
- mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...
- java atomiclong 使用_Java并发AtomicLongArray类
- idea的总部_雷普索尔- YPF总部