#!/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的方法相关推荐

  1. linux 查找py文件命令_在 Linux 中如何从命令行查找 VirtualBox 版本

    如果你想知道如何在 Linux 中从命令行查找 VirtualBox 版本,可以采用以下几种方法. -- Sk(作者) 我使用 Oracle VirtualBox 和 KVM 虚拟化程序 测试不同的 ...

  2. linux tr 命令_在Linux中使用tr命令玩角色

    linux tr 命令 tr command in Linux translates one set of characters to another. It can replace a charac ...

  3. linux comm命令_在Linux中使用Comm命令比较文件

    linux comm命令 Linux have a lot of tools to compare files. These tools provides a lot of powerful feat ...

  4. ajax 调用java类_在ajax中调用java方法

    AJAX是Asynchronous JavaScript And XML的首字母缩写.它提供了异步与服务器通信的能力. 要简单地解释一下,您可以向服务器发送请求并继续与用户进行用户交互.您无需等待服务 ...

  5. mysql视图中调用函数写法_从视图中调用函数

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. 为VMware虚拟机中的Linux系统设置固定IP的方法

    这篇文章主要介绍了为VMware虚拟机中的Linux系统设置固定IP的方法,包括以nat方式固定ip上网的方法,需要的朋友可以参考下 1.配置DNS: 修改 /etc/resolv.conf 文件,添 ...

  7. python中执行linux命令(调用linux命令)_常见Python中调用Linux命令

    有时候我们需要从Python中执行Linux命令,下面就介绍几种方法? 1. os 模块: 1.1 os.system 函数: system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果. ...

  8. python运行命令_对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...

  9. python如何封装成可调用的库_在python中如何以异步的方式调用第三方库提供的同步API...

    在关于asyncio的基本用法中提到,asyncio并不是多线程.在协程中调用同步(阻塞函数),都占用同一线程的CPU时间,即当前线程会被阻塞(即协程只会在等待一个协程时可能出让CPU,如果是普通函数 ...

  10. python中execute函数_在excel中调用python函数

    效果: 通过excel引用在py文件中写好的load_settle()函数,可以快捷的获取对应的历史结算价. 使用方法: 1.首先安装office,我用的是2016版本. 2.安装python,推荐使 ...

最新文章

  1. linux cp -d复制软链接文件
  2. 使用Docker启动Grafana环境
  3. 第四十六期:最近程序员频繁被抓,如何避免面向监狱编程?!
  4. Java——容器(泛型)
  5. Übersicht for mac(自定义桌面工具)v1.6(68)最新版
  6. java开发注意事项
  7. 苹果画画软件_想在iPad 上画画,推荐用这些软件
  8. pyhong爬虫——大众点评——用户信息
  9. 曾被网友疯狂恶搞的「蚂蚁呀嘿」项目开源上过GitHub热榜
  10. OpenCV图像特征SIFT
  11. c语言航班管理系统报告,c航班管理系统课程设计报告.doc
  12. uniapp 自定义弹层时,底部页面滚动而弹层不能滚动
  13. 制作淘宝客微信公众号(二)
  14. 在阿里云上安装MySQL的简单教程
  15. 联结主义时间分类(Connectionist temporal classification)的论文笔记
  16. Wu反走样算法绘制直线段
  17. 如何使用vue实现搜索输入框实时查询显示
  18. Mac 常用软件记录
  19. 作为Java开发者,查看mysql端口
  20. 调用opencv库进行身份证号码识别主要流程

热门文章

  1. android 水平进度条 自定义颜色,android 水平进度条的颜色设置
  2. ENSP配置 实例九 动态Nat配置
  3. linux依据时间过滤文件,详解Linux查找目录下的按时间过滤的文件
  4. 关于微信浏览器H5 React,Vue工程化项目input无法自动聚焦疑难杂症排查
  5. git安装 perl ubuntu_ubuntu下安装git
  6. spark 数据框 删除列_pandas 常用的数据处理函数
  7. ado.net mysql 连接池_ADO.NET数据连接池
  8. mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...
  9. java atomiclong 使用_Java并发AtomicLongArray类
  10. idea的总部_雷普索尔- YPF总部