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 ');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

thinkPHP伪静态,如何去掉index.php呢?

如何去掉index.php呢?1.httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置#LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉2.AllowOverride None 讲None改为 All //在APACHE里面去配置 (注意其他地方的AllowOverride也统统设置为…

chown -r oracle:oinstall /oracle,CentOS7安装Oracle12c图文详解

root身份安装依赖包&#xff1a; yum -y install binutils compat-libcap1 compat-libstdc-33 compat-libstdc-33*.i686 elfutils-libelf-devel gcc gcc-c glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc libstdc*.i686 libstdc-devel li…

在苹果笔记本如何使用python_mac下如何将python2.7改为python3

1.查看当前电脑python版本 python -V // 显示2.7.x 2.用brew升级python brew update python 3.如果安装成功&#xff0c;去系统目录下回看到两个版本的python cd usr/local/Cellar/ //到此目录下 cd python/ //进入python目录下 查看已安装的python版本&#xff0c;如果有2.x 和…

[BZOJ1834][ZJOI2010]network 网络扩容 最大流+费用流

1834: [ZJOI2010]network 网络扩容 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 3330 Solved: 1739 [Submit][Status][Discuss]Description 给定一张有向图&#xff0c;每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求&#xff1a; 1、 …

oracle备份密码文件,[数据库]Oracle数据库备份dmp文件,使用cmd命令导入导出步骤,以及忘记Oracle密码_星空网...

Oracle数据库备份dmp文件&#xff0c;使用cmd命令导入导出步骤,以及忘记Oracle密码2013-07-300dmp文件导入导出步骤1.创建表空间--datafile 的路径随便给&#xff0c;但是后面的文件命名用dbfCREATE TABLESPACE DTBSLOGGINGDATAFILE D:\OracleDateFile\DTBS.DBF SIZE 32MAUTOEX…

python需要花钱下载吗_用Python下载知乎视频,非常实用

原标题&#xff1a;用Python下载知乎视频&#xff0c;非常实用Python下载知乎视频。 # -*- coding: utf-8 -*- """ 下载知乎视频&#xff1a; 依赖&#xff1a; pip install requests mac 安装 ffmpeg: brew install ffmpeg """ import re impor…

php instanceof 基类,PHP强制对象类型之instanceof操作符

一、简介在php(做为现在的主流开发语言)中实现强制对象类型有时可能非常重要。如果缺少了它&#xff0c;或是因为缺乏这方面的知识——基于不正确的编程假设&#xff0c;或者仅仅是由于懒惰&#xff0c;那么你会在特定的Web应用程序中看到你所不希望的结果。特别是当用php(做为…

msyql备份还原

MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。 1.Win32下MySQL的备份与还原 1.1 备份 开始菜单 | 运行 | cmd |利用“cd \Program Files\MySQL\MySQL Server 5.0\bin”命令进入bin文件夹 | 利用“mysqldump -u 用户名 -p databasename >exportfilename”…

python相比于excel的优势_对照Excel使用Python进行数据分析,更快掌握

Excel和Python&#xff0c;作为数据分析的主流工具&#xff0c;在从效率提升到数据商业化的整个过程中&#xff0c;都起到了重要作用。不管是在Excel中通过鼠标点选实现&#xff0c;亦或是利用Python通过代码实现&#xff0c;数据分析中的很多基础功能都是相通的。 在数据量级大…

oraoledb.oracle 12c,关于OraOLEDB.Oracle找不到驱动问题的一种可能解决方案

如果安装Oracle的时候没有把Oracle Provider for OLE DB&#xff0c;这个组件安装上&#xff0c;那么就会导致在使用程序的时候无法使用Oracle客户端驱动问题&#xff0c;弥补的办法就是重新下载客户端程序。以下介绍win 2008 x64 Oracle 11g x64情况搭建安装驱动程序首先得下…

python二维图颜色函数_Python scipy的二维图像卷积运算与图像模糊处理操作示例

本文实例讲述了Python scipy的二维图像卷积运算与图像模糊处理操作。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 二维图像卷积运算 一 代码 import numpy as np from scipy import signal, misc import matplotlib.pyplot as plt image misc.ascent()#二维图像数组…

linux命令行大全 笔记,《Linux命令行大全》读书笔记

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;shell就是一个程序&#xff0c;它接受从键盘输入的命令&#xff0c;然后把命令传递给操作系统执行。当使用图像用户界面时&#xff0c;我们需要一个叫做终端仿真器…

dedecms 添加,编辑文章时 文章标题有字数限制的解决办法。

百度上说 解决方法有两步&#xff1a; 一、先要在系统参数下的其他选项中修改文档标题最大长度&#xff08;如修改为150&#xff09;&#xff0c; 后台系统 - 其它选项 - 文档标题最大长度 默认的是60改为150&#xff0c; 二、修改默认参数后&#xff0c;需要手工修改数据表。 …

python绘制散点图、如何选两列作为横坐标_在matplotlib散点图(水平杆图)中从x=0到数据点绘制水平线...

考虑以下情节&#xff1a;由此函数生成&#xff1a;def timeDiffPlot(dataA, dataB, savetoNone, legNone): labels list(dataA["graph"]) figure(figsizescreenMedium) ax gca() ax.grid(True) xi range(len(labels)) rtsA dataA["running"] / 1000.0…

linux命令基础知识 管道流,linux基础知识-I/O重定向,管道(示例代码)

系统设定默认输出设备&#xff1a;标准输出&#xff0c;STDOUT, 1默认输入设备&#xff1a;标准输入, STDIN, 0标准错误输出&#xff1a;STDERR, 2标准输入&#xff1a;键盘标准输出和错误输出&#xff1a;显示器I/O重定向&#xff1a;Linux:>: 覆盖输出[[email protected] …

自动轮播与按钮的联动

将自动轮播与按钮结合起来&#xff0c;就是多写了好几行&#xff0c;挺好看的不过&#xff0c;留下 z1; l.eq(0).css("background-color","orange"); function move(){ if(z!3){ bo.stop(); bo.animate({marginLeft:z*(-680)"px"}, 500, functio…

python运行命令_Python中执行外部命令

有很多需求需要在Python中执行shell命令、启动子进程&#xff0c;并捕获命令的输出和退出状态码&#xff0c;类似于Java中的Runtime类库。 subprocess模块的使用&#xff1a; Python使用最广泛的是标准库的subprocess模块&#xff0c;用来替换os.system(),os.spawn*(),os.popen…

linux多选项菜单脚本,linux shell 编写菜单脚本事例

menu2文件代码&#xff1a;---#!/bin/sh#menu2#Main menu script#ignore ctrl-c and QUIT interruptstrap "" 2 3 15MYDATEdate %d/%m/%YTHIS_HOSThostname -sUSERwhoami#user level fileUSER_LEVELSpriv.user#hold fileHOLD1hold1.$$#colour functionfunction colou…

python简单爬虫入门一_Python爬虫快速入门:基本结构简单实例

本爬虫系列入门教程假设读者仅有一点点Python基础或者近乎为零的基础。如果是有Python基础的可以跳过一些对于Python基本知识的补充。 爬虫能干什么呢&#xff1f;一句话概括&#xff0c;正常通过浏览器可以获取的数据&#xff0c;爬虫都可以获取。这句话可以说是包罗万象。一是…

Windows下rocketmq mqnamesrv.exe 启动成功,但是mqbroker.exe启动失败

1、mqnamesrv.exe启动成功 2、启动mqbroker.exe失败 解决办法&#xff0c;删除C:\Users\"当前系统用户名"\store下的所有文件&#xff0c;就可以了转载于:https://www.cnblogs.com/roujingchuxia/p/7685796.html