网络编程
位置:首页>> 网络编程>> Python编程>> Python检查ping终端的方法

Python检查ping终端的方法

作者:Persistent_  发布时间:2023-04-16 07:03:37 

标签:Python,ping

菜鸟一枚,写着试了试,虽说有点杂乱,但还是能用,我是在linux下运行的

大致说下过程:

1、把需要ping的网段中所有ip存到数组中(我是放到数组中了,其实直接for循环,一个个的也行)

2、遍历数组,逐个ping

3、根据ping返回的字符串,判断是否ping通

4、结果存入txt中

下面上代码咯(其实可以简化代码的,我这里就不简化了)


#!/usr/bin/env python
# coding: utf8

import time
import subprocess
import codecs
import os
import re

# telnet host
def pingComputer(host, statusFile):
status1 = 'ping success'
status2 = 'ping faild'
errorStr = 'Destination'
for ipAdd in host:
print ("get: " +ipAdd + " status")
# get now time
nowTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
p = os.popen("ping -q -c 2 -r " + ipAdd)
line = p.read()

# judge errorstr in line if
if errorStr in line:
writeToText(nowTime, ipAdd, status2, statusFile)
else:
writeToText(nowTime, ipAdd, status1, statusFile)

# write status information to txt
def writeToText(nowTime, ipAdd, status, statusFile):
s_text = 'TIME:' + nowTime + '\t' + 'IP:' + ipAdd + '\t' + 'STATUS:' + status + '\r\n'

if '0' == judgeFile(statusFile):
with open(statusFile, 'a') as f:
f.write(s_text)
f.close()
if '1' == judgeFile(statusFile):
with open(statusFile, 'w') as f:
f.write(s_text)
f.close()

# Determine whether statusFile exists
# 0: exists
# 1: no exists
def judgeFile(statusFile):
if os.path.exists(statusFile):
return '0'
else:
return '1'

if __name__ == "__main__":
IpFirst = '192.168.1.'
# ip:1~254
host = []
for j in range(254):
host.append(IpFirst + str(j + 1))
# write file
statusFile = '/root/UpStatus.txt'
pingComputer(host, statusFile)

就是一台一台的ping,判断,有点慢!

来源:https://blog.csdn.net/qq_21911403/article/details/77583561

0
投稿

猜你喜欢

  • 什么是随机数随机数并不意味着每次都有不同的数字。随机意味着无法在逻辑上预测的事物。伪随机和真随机计算机在程序上工作,程序是权威的指令集。因此
  • 1. 使用 easy_installeasy_install 这应该是最古老的包安装方式了,目前基本没有人使用了。下面是 easy_inst
  • 简介在SQL SERVER中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL SER
  • 1、如何统计序列中元素的出现频度实际案例:(1)某随机序列[12, 5, 6, 4, 6, 5, 5, 7, ...] 中找到出现次数最高的
  • 准备1.电脑系统:win102.手机:安卓(没钱买苹果)3.需要的工具可以从官网下载https://appium.io/https://ww
  • 基本介绍文件,对我们并不陌生,文件是数据源(保存数据的地方)的 一种输入流和输出流 文件在程序中是以流的形式来操作的流:数据在数据源(文件)
  • MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MYSQL连接数的方法有两
  • 基础知识# 在Linux操作系统下,Python3的默认环境编码变为了utf-8编码,所以在编写代码的时候,字符串大部分都是以utf-8处理
  • 动手写个小组件(组件入门) 这篇文章主要是为想将自己的ASP水平提高的人写的! 把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也
  • 今天在开发一个手机短信通讯录的前端界面时,界面中使用了checkbox,来做为各项的选择控件,但是操作时,除了点差子。由于逻辑需要,需要预先
  • 这篇文章主要介绍了Python如何基于smtplib发不同格式的邮件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
  • 前言最近经历了一次服务器SQL SERVER 数据库服务器端事务日志爆满,导致服务器数据库写入不进数据的宕机事件,经过此次事件的发生,奉劝各
  • 滑动平均会为目标变量维护一个影子变量,影子变量不影响原变量的更新维护,但是在测试或者实际预测过程中(非训练时),使用影子变量代替原变量。1、
  • UTC与DSTUTC可以视为一个世界统一的时间,以原子时为基础,其他时区的时间都是在这个基础上增加或减少的,比如中国的时区就为UTC+8。D
  • 前言:在Python里面,只要类型对象实现了__iter__,那么它的实例对象就被称为可迭代对象(Iterable),比如字符串、元组、列表
  • 不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解py
  • 核心代码: header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); head
  • 1.引入正则模块(Regular Expression)要使用python3中的RE则必须引入 re模块import re #引入正则表达式
  • 在正式的生产环境中,我们常常会需要监控服务器的状态,以保证公司整个业务的正常运转,常常我们会用到像nagios、zabbix这类工具进行实时
  • 工具/原料win7操作系统MySQLzip格式安装包方法/步骤MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的。如果是ms
手机版 网络编程 asp之家 www.aspxhome.com