import os
from ping3 import ping
import csv
import time
import os
import sysfrom concurrent.futures import ThreadPoolExecutor as pool#核心原理是:concurrent.futures会以子进程的形式,平行的运行多个python解释器,
# 从而令python程序可以利用多核CPU来提升执行速度。由于子进程与主解释器相分离,
# 所以他们的全局解释器锁也是相互独立的。每个子进程都能够完整的使用一个CPU内核。# 读取csv文件
def readcsvfile(filename="./config/ipaddr.csv"):if not os.path.exists(filename):print("ipaddr.csv文件不存在,请配置检测的IP地址!")sys.exit()with open(filename,'r')as fr:swaplines = []csvreader=csv.reader(fr)for line in csvreader:if line[0]=='ip':   # 判断是否是表头,如果是表头的话,就是跳过这一行continueif line[1]=="":   # 判断第二列是否‘’值,如果是空值的话,就是写入‘#’,符号,进行填充。line[1]="#"# print(line)# print(line[0])swaplines.append(line)return swaplines    # 返回一个列表,到main程序中,调用这个列表# pinginfo(line)# 核心模块,检测是否在线,‘from ping3 import ping’中ping3中的ping模块进行检测。
def pinginfo(ipline):with open('./destdata/result.csv', 'a+', newline='')as f:fcsv = csv.writer(f)pingretlist=[]   # 添加一个临时变量列表,pingretlist# flag=-1ip=ipline[0]ipname=ipline[1]ping_result=ping(ip)    # 调用ping3中的ping模块if ping_result==None:    #  如果检测不在线的话,把ip,name,flag都是写入typeswap列表中flag='x'typleswap = [ip, ipname, flag]# writecsvfile(typleswap)fcsv.writerows(typleswap)else:flag = '√'typleswap = [ip, ipname, flag]fcsv.writerows(typleswap)# def writecsvfile(rows):
#     # rows = [['192.168.1.9', 'xx路口', ‘√’],['192.168.1.9', 'xx路口', ‘√’]...]
#
#
#
#     # 写入数据,newline=" "是为了避免写入之后有空行
#
#     with open('./destdata/result.csv','a+',newline='')as f:
#         fcsv=csv.writer(f)    # readee 自己的文件
#
#         # fcsv.writerow(header)    # 单行写入
#         fcsv.writerows(rows)if __name__ == '__main__':start = time.time()print(" 2021-10-20...")print("IP 状态检测,请稍等...")print("==="*18)listall=readcsvfile()   #获取所有的检测的IP的地址和名称信息的列表。with pool(max_workers=10)as t:     #多线程的调用for ipline in listall:task=t.submit(pinginfo,ipline)print("检测完成,请在程序的destdata/result.csv文件下获取结果!")end = time.time()print("持续运行时间为:{}".format(end - start))time.sleep(100)

ping,python实现批量ping包工具--小案例v3优化版本相关推荐

  1. python ping模块用法_使用Python实现批量ping操作方法

    在日常的工作中,我们通常会有去探测目标主机是否存活的应用场景,单个的服务器主机可以通过计算机自带的DOS命令来执行,但是业务的存在往往不是单个存在的,通常都是需要去探测C段的主机(同一个网段下的存活主 ...

  2. python批量ping50台服务器_使用python编写批量ping主机脚本

    通过使用python,编写脚本批量ping主机,验证主机是否处于活动状态 #!/usr/bin/python #auther: Jacky #date: 2016-08-01 #filename: p ...

  3. python爬虫基础17-抓包工具使用

    01 抓包工具原理 HTTP 由于HTTP请求是没有加密的,也没有做任何验证,所以抓包工具直接将请求转发即可. HTTPS 由于HTTPS请求,客户端会使用服务端的证书来加密数据,而且会验证服务端是否 ...

  4. 『Python爬虫』抓包工具 Fiddler 入门教程

    如今Python爬虫越来越火,有想学好Python爬虫的小伙伴可以前往gzh[Python编程学习圈]领取系统的学习资料以及教程视频,还分享有大量的技术干货文章可以阅读学习,欢迎大家关注学习. 传统的 ...

  5. 按键精灵,批量传包工具源码备份

    // 获取当前路径 curDir = Plugin.Sys.GetDir(0) //curDir = "D:\sci\按键精灵\乐堂批量传包" curDir = Replace(c ...

  6. python程序实例教程基础-编程小案例

    编程小案例 本小节实现一个通讯录管理程序,通过这个案例来融会贯通之前所学习的知识,该程序使用到如下知识点: 条件选择 循环 列表 字典 键盘输入 屏幕输出 编写程序 addr-manage.py 实现 ...

  7. python自动化办公 51cto_利用python实现批量自动化运维脚本案例

    本文为通过密码或密钥实现python批量自动化运维脚本案例分享,是老男孩linux培训 python课程教学案例内容,后续会分享多线程并发执行这个脚本的更高级的功能(http://oldboy.blo ...

  8. java检测ping延迟_批量ping IP并检测IP延迟率和丢包率脚本

    脚本文件如下: #!/bin/bash #Author:Mr.Ding #Created Time:2018-08-26 07:23:44 #Name:ping.sh #Description: sh ...

  9. 九十二、Python爬取深圳租房信息小案例

    @Author:Runsen @Date:2020/6/19 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  10. Python入门简单概念讲解及其小案例

    列表 # 列表取出数据首字母大写(title函数) # bicycles = ['trek','cannondale','redline','specialized'] # print(bicycle ...

最新文章

  1. 误差向量幅度(EVM)介绍
  2. 基于按位与的 就散策略_比较散列策略
  3. leetcode719:直线上的第k近点对
  4. python中的元组字符串整数浮点数都是不可变的数据类型,Python不可变数据类型总结...
  5. python深度学习——手写字符识别
  6. C语言课设----个人信息管理系统(包含学生成绩和消费记录)
  7. 华为数通ensp命令(四)
  8. mysql foxpro_|DBSync for FoxPro and MySQL(数据库同步工具)下载v4.7.1免费版 - 欧普软件下载...
  9. 准确率(Accuracy) 精确率(Precision) 召回率(Recall)和F1-Measure(精确率和召回率的调和平均值)
  10. 最常用的看板工具,敏捷开发工具
  11. java十二星座 (快来测试你是什么星座吧)
  12. OpenSSH 用户枚举漏洞(CVE-2018-15919)服务器修复方法(亲测实用)
  13. 2023年湖北安全员ABC报名时间和考试时间是什么时候?甘建二
  14. sdk没有登录什么意思_SDK登录与支付流程图文教程
  15. 2018互联网大厂秋招编程通关(二)
  16. Vue,js前端实现语音实时转换文字,前端实现浏览器语音实时转换为文字,vue阿里云语音转文字
  17. Django无法显示图片
  18. 一个JavaScript写的黑白棋AI
  19. 小技巧---ubuntu下截图,截图全屏Prt Sc SysRq,截图当前窗口Alt+Prt Sc SysRq
  20. c语言多变量传函,机电一体化系统设计试题及答案

热门文章

  1. TP5.1中的验证类 validate用法
  2. 【转】HEIF图片存储格式探秘
  3. Java在websocket获取Httpsession及bean无法注入问题
  4. 【Linux基础】在 Linux 上安装软件的 3 种方法
  5. python 验证码
  6. VC下的人人对弈五子棋(dos)
  7. qt4.7.0 交叉编译环境搭建经验总结
  8. JAVA中的GUI---swing 和awt
  9. 在子MasterPage设置UserControl内的Web控件属性
  10. 新浪微盘等大批网盘将关停 你的私藏文件导出来了吗?