广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中调用Ping命令,批量IP
  • 176
分享到

Python中调用Ping命令,批量IP

批量命令Python 2023-01-31 08:01:45 176人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

#!/usr/bin/env python #coding:UTF-8 ''''''' Author: jefferchen@163.com 可在命令行直接带目的IP,也可将IP列表在文本文件中。 pingip.py -d D

#!/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] %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)

--结束END--

本文标题: Python中调用Ping命令,批量IP

本文链接: https://www.lsjlt.com/news/192487.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中调用Ping命令,批量IP
    #!/usr/bin/env python #coding:UTF-8 ''''''' Author: jefferchen@163.com 可在命令行直接带目的IP,也可将IP列表在文本文件中。 pingip.py -d D...
    99+
    2023-01-31
    批量 命令 Python
  • python调用系统命令ping
     #! /usr/bin/env python #coding=utf-8 ############# import subprocess import time import os ks=int(time.time()) #记录开始时间 ...
    99+
    2023-01-31
    命令 系统 python
  • python中subprocess批量执行linux命令
    可以执行shell命令的相关模块和函数有: os.system os.spawn os.popen --废弃 popen --废弃 commands --废弃,3.x中被移除 以上执行shell命...
    99+
    2022-06-04
    python subprocess linux命令
  • python中调用dos命令
    本文是基于window系统下的调用dos命令,在centos下也类似 #encoding:utf-8 ''' Created on 2015年10月10日 @author: ZHOUMEIXU204 ''' import os impo...
    99+
    2023-01-31
    命令 python dos
  • Linux 中怎么使用rename命令批量重命名
    本篇文章为大家展示了Linux 中怎么使用rename命令批量重命名,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如何区分系统里的rename命令是哪个版本的输入 man rename 看到第一行是...
    99+
    2023-06-13
  • Linux中如何使用rename命令批量重命名文件
    这篇文章给大家分享的是有关Linux中如何使用rename命令批量重命名文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Linux系统中需要对文件进行重命名大家第一个想到的命令就是mv,mv命令对单个文件进行...
    99+
    2023-06-27
  • Python中怎么调用zip命令
    Python中怎么调用zip命令,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python调用zip命令例子程序是这样的:#!/usr/bin/Python &...
    99+
    2023-06-17
  • 怎么在linux中使用命令批量替换内容
    本篇文章给大家分享的是有关怎么在linux中使用命令批量替换内容,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。比如要将所有包含abc文件里面的abc替换为def find -t...
    99+
    2023-06-10
  • Python批量调整Word文档中的字体、段落间距及格式python调用函数批量调整word格式
        最近关于批处理格式的问题我查了很多资料,但是都没有找到自己想要的答案。接上期,上篇博文我简单介绍了python操作Word的一些基本操作,本篇重点介绍如何批量将python中的文字导入到Word中,评设置其字体字号、间距、样式等。...
    99+
    2023-09-16
    python word 开发语言
  • 如何在centos中使用命令批量修改文件名
    如何在centos中使用命令批量修改文件名?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体命令如下:find -name "*.txt"...
    99+
    2023-06-10
  • 批处理命令向win server AD域中批量添加用户实现(2种)
    目录第一种方式:命令行传参添加第二种方式:读取文件添加用户因为要用个批处理命令在Windows Server里面批量添加域用户,所以需要使用批处理命令。 我这篇是纯新手教程,在百度上...
    99+
    2022-11-13
  • 怎么在python中使用virtualenv调用命令
    本篇文章为大家展示了怎么在python中使用virtualenv调用命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(...
    99+
    2023-06-14
  • linux中使用Python对图片进行批量命名
    在linux中使用Python对图片进行批量命名 大家在进行机器学习训练时,为了方便管理不同种类的图片,需要对同一类图片进行批量命名。 1 picture文件夹有大量照片,我们需要对...
    99+
    2022-11-12
  • Shell命令在Java中的应用:如何批量处理文件?
    在日常开发中,我们经常需要处理大量的文件。而Shell命令是一个非常强大的工具,可以帮助我们快速地批量处理文件。在Java中,我们可以通过调用Shell命令来实现文件的批量处理。本文将介绍如何在Java中使用Shell命令来实现文件的批量...
    99+
    2023-06-24
    文件 二维码 shell
  • linux中如何使用Python对图片进行批量命名
    小编给大家分享一下linux中如何使用Python对图片进行批量命名,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!大家在进行机器学习训练时,为了方便管理不同种类的...
    99+
    2023-06-22
  • Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
    每种语言都有自己的优势,互相结合起来各取所长程序执行起来效率更高或者说哪种实现方式较简单就用哪个,nodejs是利用子进程来调用系统命令或者文件,文档见http://nodejs.org/api/child...
    99+
    2022-06-04
    脚本 实例 命令
  • 可测含多进程的app-- python调用adb命令获取Android App应用的性能数据:CPU、GPU、内存、电池、耗电量(含python源码)
    可测含多进程的app–Python–通过adb命令获取Android App应用的性能数据:CPU、GPU、内存、电池、耗电量,并与Perfdog取值对比结果 1、原理 python脚本通过os.p...
    99+
    2023-09-07
    android adb python 测试工具
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作