返回顶部
首页 > 资讯 > 后端开发 > 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://lsjlt.com/news/192487.html(转载时请注明来源链接)

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

猜你喜欢
  • 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实现本地批量ping多个IP
    本文主要利用python的相关模块进行批量ping ,测试IP连通性。 下面看具体代码(python3): #!/usr/bin/env python#-*-coding:utf-8-*- import reimport subproce...
    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中ping命令有什么用
    这篇文章将为大家详细讲解有关linux中ping命令有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。发觉linux下的ping命令花样还挺多的,下面是几个例子ping www.baidu.com,最...
    99+
    2023-06-10
  • Linux中的ping命令怎么用
    这篇文章主要为大家展示了“Linux中的ping命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中的ping命令怎么用”这篇文章吧。ping命令用来测试主机之间网络的连通性。执...
    99+
    2023-06-28
  • python调用调用Linux命令
    如何调用Linux命令下面代码演示了调用一个shell命令, 其中,命令的输出会存储到result变量中, 而命令的返回值,则存储到exitcode中,由此可见,调用shell命令还是很方便的:import commandsexitcode...
    99+
    2023-01-31
    命令 python Linux
  • Linux 中怎么使用rename命令批量重命名
    本篇文章为大家展示了Linux 中怎么使用rename命令批量重命名,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如何区分系统里的rename命令是哪个版本的输入 man rename 看到第一行是...
    99+
    2023-06-13
  • Python调用Dos命令
    写了几个批处理,主要是一些Android调试命令,现在想用python来搞,感觉更酷一些吧。O(∩_∩)O~ 比如Ping命令: ping www.baidu.com 用python来做,主要是使用了python标准库中的os库。 参见P...
    99+
    2023-01-31
    命令 Python Dos
  • 如何在Linux中使用ping命令
    这期内容当中小编将会给大家带来有关如何在Linux中使用ping命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.命令格式:ping [参数] [主机名或IP地址]2.命令功能:p...
    99+
    2023-06-13
  • Python中怎么调用zip命令
    Python中怎么调用zip命令,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python调用zip命令例子程序是这样的:#!/usr/bin/Python &...
    99+
    2023-06-17
  • 一行Python命令实现批量加水印
    工作的时候,尤其是自媒体工作者,必备水印添加工具以保护知识产权,网上有许多的在线/下载的水印添加工具,但他们或多或少都存在以下问题: 1. 在线工具需要将图片上传到对方服务器,信息不...
    99+
    2024-04-02
  • python调用外部命令
    python调用外部命令os.system:  输出在终端上,捕捉不到os.popen:  只能捕捉到标准输出,捕捉不到标准错误输出os.popen2: 返回2个对象,一个是标准输入,一个是标准输出os.popen3: 返回3个对象,标准输...
    99+
    2023-01-31
    命令 python
  • Linux中如何使用rename命令批量重命名文件
    这篇文章给大家分享的是有关Linux中如何使用rename命令批量重命名文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Linux系统中需要对文件进行重命名大家第一个想到的命令就是mv,mv命令对单个文件进行...
    99+
    2023-06-27
  • Python实现ssh批量登录并执行命令
    局域网内有一百多台电脑,全部都是linux操作系统,所有电脑配置相同,系统完全相同(包括用户名和密码),ip地址是自动分配的。现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件,拷贝...
    99+
    2022-06-04
    批量 命令 Python
  • Linux系统中ping和arping命令的用法
    这篇文章主要讲解了“Linux系统中ping和arping命令的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统中ping和arping命令的用法”吧!pingping 程序...
    99+
    2023-06-12
  • Linux中ping命令有哪些特殊用法
    这篇文章主要介绍了Linux中ping命令有哪些特殊用法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。不管在windows平台,还是在linux平台,ping都是非常常用的网...
    99+
    2023-06-27
  • python怎么调用shell命令
    在Python中,可以使用`subprocess`模块来调用shell命令。下面是一个简单的示例:```pythonimport s...
    99+
    2023-08-30
    python shell
  • python调用linux系统命令
    python3脚本代码如下# !/usr/bin/python# -.- coding: utf-8 -.-__author__ = 'www.py3study.com'import getpassimport osclas...
    99+
    2023-01-30
    命令 系统 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作