由于需要维护的机器比较多,有时需要ping主机的状态,时间久了就想写个工具,正好在学习python,而且又比较喜欢python跨平台的特点,最终选择python来实现
代码如下:
#!/usr/bin/python import os import re import platform def validateIP(ipStart,ipEnd): p = re.compile('([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}') if p.match(ipStart) and p.match(ipEnd): if ipStart[:ipStart.rfind(".")] <> ipEnd[:ipEnd.rfind(".")]: print "Do not support different Net segment" exit(0) else: print "invalid IP Address" exit(0) def checkPing(ipStart,ipEnd): ''' create result txt ''' if os.path.isfile("PingHostResult.txt"): os.remove("PingHostResult.txt") fp = open("PingHostResult.txt","w") ''' check different os ''' if platform.system() == 'Linux' : cmd = 'ping -c 4 %s' else: cmd = 'ping -n 4 -w 1 %s' if ipStart == ipEnd : backInfo = os.system(cmd%ipStart) if backInfo == 0 : result = ipStart+' is ok' else: result = ipStart+' no response' fp.writelines(result) else: ipMin = ipStart[ipStart.rfind(".")+1:] ipMax = ipEnd[ipEnd.rfind(".")+1:] for i in range (int(ipMin),int(ipMax)+1): targetIp = ipStart[:ipStart.rfind(".")]+"."+str(i) backInfo = os.system(cmd%targetIp) if backInfo == 0 : result = targetIp+' is ok' else: result = targetIp+' no response' fp.writelines(result+os.linesep) fp.flush() fp.close() if __name__ == "__main__": ipStart = raw_input("PLS input Start ipAddress: ") ipEnd = raw_input("PLS input End ipAddress: ") validateIP(ipStart,ipEnd) checkPing(ipStart,ipEnd) ''' result output''' for item in open("PingHostResult.txt","r").readlines(): print item
脚本还有很多漏洞和不足,以及不规范之处,希望前辈们能够多多指出!!!
目前遇到的问题:
windows下ping一个已经挂掉了的主机,发出去的包也会收回来,比较迷惑,希望高手能够指点!
暂时的解决办法是指定 -w 1 等待时间超过1s,就认为没有响应
相关推荐
这个文件中介绍了如何使用Python实现自定义的ping功能以及SSH登录设备执行命令的功能。 1. 自定义ping函数: 在Python中,我们可以使用第三方库kamene(原名Scapy)来构造和发送ICMP协议的ping请求。首先,通过`...
在Python中,我们可以使用`socket`库或者第三方库如`ping3`来实现这个功能。`socket`库允许我们创建自定义的网络连接,而`ping3`库则封装了ping操作,使其更加简单易用。 为了在Web界面展示结果,我们需要创建一个...
在IT领域,网络通信是不可或缺的一部分,而`ping`命令是一种常用的网络诊断工具,用于测试网络连接性。本文将深入探讨如何通过编程实现一个基于`ICMP`协议的`ping`功能,具体以类的形式调用`socket` API来完成这一...
标题中的"C#远程调用Linux服务器的Python脚本"指的是使用C#编程语言从Windows客户端远程执行在Linux服务器上托管的Python脚本。这通常涉及到跨平台通信和远程过程调用(RPC)技术。描述中提到的问题和解决方案集中在...
通过这个简单的示例,我们可以看到如何使用Python结合WMI实现ping命令。这仅仅是个开始,实际上,WMI提供了大量的类和方法,可用于监控系统状态、管理网络设备、控制进程和服务等。因此,熟练掌握WMI和Python的结合...
简单的工具,用于根据所需目标测试和记录ping(无论是网站还是位于下面的路由器楼层) Ping Monitor使用vis.js库对ping时间轴进行可视化。 要求 要运行PingMonitor,您需要安装Python(版本3.x),并使用HTML客户端...
在给定的部分内容中,我们看到一个使用Python编写的简单程序,它能够扫描远程主机的端口并确定哪些端口处于打开状态。 ```python #!/usr/bin/env python # coding=utf-8 import argparse import socket import sys ...
它提供了一个简单易用的接口,允许程序员快速发送ICMP(Internet Control Message Protocol)ping请求来检查远程主机的可达性。ICMP ping是一种网络诊断工具,通过发送ICMP回显请求数据包到目标主机,然后等待目标...
端口扫描是网络安全和系统管理中的一个重要概念,主要用于发现远程主机上哪些端口是开放的,这有助于识别潜在的安全漏洞和服务状态。常见的端口扫描工具有Nmap、Masscan等,它们可以快速地对目标IP地址范围内的所有...
通常我们会使用`ping`命令来检测与远程主机的连接状态。对于需要批量测试多个IP地址的情况,手动逐个执行`ping`命令显然是低效且耗时的。本文将介绍一种利用Python脚本自动化执行批量IP地址`ping`测试的方法,这种...
这些文档可能涵盖了使用Python编写的端口扫描工具的实现细节和优化策略。 4. **telnet命令用法**:telnet是一种远程登录协议,可用于测试网络服务是否可用。通过telnet命令,我们可以尝试连接到特定端口,如果连接...
如果要获取远程主机的IP,可以使用`ping`命令,它会返回目标主机的IP。 - 编程方式:在Python中,可以使用`socket.gethostbyname(socket.gethostname())`获取本机IP,使用`socket`库的`connect()`方法连接远程...
通过NTP设置日期和时间ping:将ICMP ECHO_REQUEST发送到网络主机psql:postgresql cli rediscli:redis cli scp:安全复制(远程文件复制程序) sh:壳ssh:OpenSSH SSH客户端(远程登录程序)例子from shtools ....
核心模块命令部分介绍了几个常见的Ansible命令,比如ansible-doc用于查询模块的详细信息,ping模块用于测试远程机器的通信状态,setup模块用于查看远程主机的一些基本信息,command模块和raw模块均用于在远程机器上...
这些模块可以通过SSH、WinRM等方式部署到远程主机上执行特定任务。 - **Core Modules**:核心模块由Ansible提供,用于执行基本的操作。 - **Custom Modules**:当核心模块无法满足特定需求时,可以编写自定义模块...
2. `template`模块可以使用Jinja2模板语言动态生成文件并将其传输到远程主机。 3. `file`模块可以管理文件和目录,如创建、删除、改变权限等。 4. `service`模块用于启动、停止或重启服务。 5. `package`模块可以...
可以使用`System.Environment`类的`MachineName`属性来获取主机名。示例代码如下: ```csharp using System; class Program { static void Main() { Console.WriteLine("主机名: " + Environment.MachineName)...
它无需在客户端安装代理软件即可进行工作,通过SSH协议实现对远程主机的管理,极大地简化了运维人员的工作。 **主要特点**: 1. **模块化**:Ansible是模块化的,这意味着可以通过调用特定的模块来完成特定的任务...
在 Python 中,可以使用 `icmp-ping` 实现类似的功能。ICMP(Internet Control Message Protocol)是一种网络层协议,用于在 IP 层面上发送错误和控制消息。Marvin 可能通过发送 ICMP 回显请求(即 ping 请求)来...
1. **Ping协议简介**:Ping协议允许客户端向远程主机发送一包数据,并期望该主机将数据原样返回给客户端,这一过程被称为“回显”操作。通常,Ping协议用于检测主机之间的连通性以及测量往返时间。 2. **UDP协议...