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,判断,有点慢!

以上这篇Python检查ping终端的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python 执行终端/控制台命令的例子

    如下所示: import os os.system() os.popen().read().strip() #上面2种方法 是python 执行终端/控制台 命令的常见方法 #os.system('ping www.baidu.com') 执行成功 返回 0 #ping = os.popen('pint www.baidu.com').read().strip() 返回输出结果 #注:os.system() 执行完成 会关闭 所以当执行后续 命令需要依赖前面的命令时,请将多条命令写到一个 os.

  • 如何为Python终端提供持久性历史记录

    问题 有没有办法告诉交互式Python shell在会话之间保留其执行命令的历史记录? 当会话正在运行时,在执行命令之后,我可以向上箭头并访问所述命令,我只是想知道是否有某种方法可以保存这些命令,直到下次我使用Python shell时. 这非常有用,因为我发现自己在会话中重用命令,这是我在上一个会话结束时使用的. 解决方案 当然你可以用一个小的启动脚本.来自python教程中的交互式输入编辑和历史替换: # Add auto-completion and a stored history fi

  • 在PyCharm的 Terminal(终端)切换Python版本的方法

    在我的电脑中存在多个版本的Python,实际工作中也时常需要切换Python版本来进行相关工作.在Pycharm的终端中使用python和ipython命令进入的python shell都是环境变量中,也就是默认的python版本. 每次在 PyCharm 软件中 Terminal 窗口 或者 在cmd 命令行界面中 ,执行 python 命令,启动的都是 python3 的交互界面: 在 PyCharm 软件中 Terminal 窗口 中,输入python优先进入环境变量中的python3.6

  • 浅谈终端直接执行py文件,不需要python命令

    然后给脚本文件运行权限, 方法(1)chmod +x ./*.py 方法(2)chmod 755 ./*.py (777也无所谓啦) 这个命令不去调整,会出现permission denied的错误 终端直接执行. 如果在脚本内容的开头已经给出了类似于如下的注释: #!/usr/bin/env python(或者是 #!/usr/bin/python) 那就可以直接在终端里运行: ./*.py 如果没有这个注释 就在终端中执行: python ./*.py (注意:有些linux版本上运行即使上

  • python如何在终端里面显示一张图片

    Linux终端里面可谓是奇妙无限,很多优秀的软件都诞生在终端里面.相较之下,Windows本身的理念和Linux就不一致,所以,你懂得. 下面,我们不妨先思考一下,如何在终端里面显示一张图片? 在终端里面显示,肯定就不像在看图软件里那样的细腻了,我们只是以字符代替某一点的像素,把大致的轮廓显示出来罢了. 编码 既然思路很清晰了,下面就来编码了. # coding:utf-8 import sys reload(sys) sys.setdefaultencoding('utf8') # __aut

  • 在Linux命令行终端中使用python的简单方法(推荐)

    Linux终端中的操作均是使用命令行来进行的.因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来. 打开命令行窗口 打开命令行窗口的快捷键如下: Ctrl + Alt + t 关闭名命令行窗口 关闭命令行窗口的快捷键如下: Ctrl + d 进入python环境 在命令行中直接输入python即进入了python的编辑环境.进入环境后最明显的提示是:光标由-$变成>>>. 退出python环境 使用ctrl +d的方式退出python

  • 在linux的终端退出python命令行的方法

    如下所示: Python 2.7.7 (default, Jun 3 2014, 01:46:20) [GCC 4.9.0 20140521 (prerelease)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> quitUse quit() or Ctrl-D (i.e. EOF) to

  • 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 code

  • Python基于正则表达式实现检查文件内容的方法【文件检索】

    本文实例讲述了Python基于正则表达式实现检查文件内容的方法分享给大家供大家参考,具体如下: 这个是之前就在学python,欣赏python的小巧但是功能强大,是连电池都自带的语言.平时工作中用Java ,觉得python在日常生活中比java用处要大,首先语法没那么复杂,特别是io的操作,java里要写一大坨没关的代码.还有就是不用编译,而且linux系统默认都会自带. 这次遇到的问题是工作当中想要迁移一个系统中的一个模块,这个时候需要评估模块里的代码有没有对其他代码强依赖,就是有没有imp

  • python检查指定文件是否存在的方法

    本文实例讲述了python检查指定文件是否存在的方法.分享给大家供大家参考.具体如下: import os def file_exists(file_name): if os.path.exists(file): return '%s is found' % file_name else: return '%s is missing' % file_name 希望本文所述对大家的Python程序设计有所帮助.

  • python检查序列seq是否含有aset中项的方法

    本文实例讲述了python检查序列seq是否含有aset中项的方法.分享给大家供大家参考.具体实现方法如下: # -*- coding: utf-8 -*- def containsAny(seq, aset): """ 检查序列seq 是否含有aset 中的项 """ for c in seq: if c in aset: return True return False seq = [1,2,3] aset = [3,4,5] print(c

  • python检查字符串是否是正确ISBN的方法

    本文实例讲述了python检查字符串是否是正确ISBN的方法.分享给大家供大家参考.具体实现方法如下: def isISBN(isbn): """Checks if the passed string is a valid ISBN number.""" if len(isbn) != 10 or not isbn[:9].isdigit(): return False if not (isbn[9].isdigit() or isbn[9].l

  • python实现ping的方法

    本文实例讲述了python实现ping的方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python #coding:utf-8 import os, sys, socket, struct, select, time # From /usr/include/linux/icmp.h; your milage may vary. ICMP_ECHO_REQUEST = 8 # Seems to be the same on Solaris. def checksum(sou

  • python 检查文件mime类型的方法

    magic 模块可以检查文件的mime类型,而不是从后缀名来判断,例如判断文件是不是视频或图片类型如下: #检查文件类型 mime_type = magic.from_file(full_path,mime=True) logger.info("上传的文件类型:"+str(mime_type)) if not mime_type.startswith('video') and not mime_type.startswith('image'): logger.error("非

  • python 检查是否为中文字符串的方法

    [目标需求] 查看某一个字符串是否为中文字符串 [解决办法] def check_contain_chinese(check_str): for ch in check_str: if u'\u4e00' <= ch <= u'\u9fff': return True else: return False [举例检验] check_contain_chinese('abcc') False check_contain_chinese('123') False check_contain_chi

  • python 实现ping测试延迟的两种方法

    一.python实现ping返回延迟繁琐版 #!/usr/bin/python3.7 # !coding:utf-8 __author__ = 'hsz' __date__ = 'Thu Feb 27 22:41:15 EST 2020' import time import struct import socket import select import sys def chesksum(data): """ 校验 """ n = len(d

  • 详解Python调用系统命令的六种方法

    作为胶水语言,Python可以很方便的执行系统命令,Python3中常用的执行操作系统命令有os.system().os.popen().subprocess.popen().subprocess.call().subprocess.run().subprocess.getstatusoutput()六种方法. os.system() system函数可以将字符串转化成命令在服务器上运行:其原理是每一条system函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无法影响主进程.

随机推荐