主机存活检测脚本

news2024/11/25 3:33:51

原理演示

在命令行下用下面命令安装scap模块:

python -m pip install scapy

scapy与scrapy 有非常大的区别。
scapy 是一个Python 的第三方模块,被称为“网络神器”。scapy 模块能够发送、捕获、分析和铸造网络数据

sr1发送接收函数

如图,安装成功,并加载成功:

在这里插入图片描述

用pkt设置源IP和目标IP,协议为TCP

pkt=IP(src="10.9.75.238",dst="10.9.75.2")/TCP()

然后用sr1发送接收函数探测主机IP是否存活,超时时间设置为5秒:

 res=sr1(pkt,timeout=5)

如下图,接收到1035个数据包,但是没有得到目标主机的回应,这是因为sr1函数在发送数据包的时候会一直处于监听状态,收到的1035个数据包是该局域网所有主机的数据包:

在这里插入图片描述

使用ICMP协议进行主机探测,并查看该pkt的配置:

pkt=IP(src="10.9.75.238",dst="10.9.75.2")/ICMP()

查看pkt的配置:

pkt.show()

如图,源IP和目标IP分别是10.9.75.238和10.9.75.2,ICMP的类型是request请求包:
在这里插入图片描述

发包后依然没有回应包,说明该主机没有存活:

在这里插入图片描述

脚本编写

verbose= False:隐藏发包过程,上述的点

from scapy.all import *和from scapy.layers.inet import *:载入IP()和ICMP()函数需要的包

import logging
logging.getLogger(“scapy.runtime”).setLevel(logging.ERROR):这两个模块可以隐藏warning报错信息,设置只显示最高级的报错ERROR

from termcolor import colored:该模块可以提供文本变色的效果

print(colored(f"\n{ip} is ALINE",“green”))将存活的主机IP颜色变为绿色

ip=f"{netmask}{i}"将10.9.75.与for循环遍历的i拼接

from scapy.all import *
from scapy.layers.inet import *
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from termcolor import colored

netmask="10.9.75."
src="10.9.75.45"
for i in range(1,12):
    ip=f"{netmask}{i}"

    pkt=IP(src=src,dst= ip)/ICMP()
    res = sr1(pkt,timeout= 1,verbose= False)

    if res and res.type == 0:
        print(colored(f"\n{ip} is ALTVE","green"))
    else:
        print(f"\r{ip} is NOT ALTVE")

结果如下,遍历11次,探测出两个存活IP:

在这里插入图片描述

如果将最后一句改为

 print(f"\r{ip} is NOT ALTVE",end="")

输出结果就会原地输出,后面的输出会覆盖前面的,直到输出存活IP:

在这里插入图片描述

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

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

相关文章

AI绘画变现渠道:日入100+,推荐一个本人实操的方法

关于AI绘画变现,之前写了几篇相关的文章,需要的自己查阅: AI绘画:如何让图片开口说话生成视频?变现渠道有哪些? 无私分享我的AI绘画变现之路,普通人可实操可模仿 AI壁纸号一周增加上千粉丝&a…

二叉树题目:层数最深叶子结点的和

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:层数最深叶子结点的和 出处:1302. 层数最深叶子结点的和 难度 4 级 题目描述 要求 给定一个二叉树…

有效的括号(栈的高频面试题)

一、题目描述 题目连接:有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺…

我的创作纪念日 · 开始创作的第128天~

我的创作纪念日 开始创作的第128天 1️⃣ 机缘2️⃣ 收获3️⃣ 日常4️⃣ 憧憬 1️⃣ 机缘 时光匆匆,春去秋来,2023年在CSDN下笔的128天已去,回想当初成为创作者的初心,现在的心境已截然不同。当时正值上家公司工作变动&#xf…

【大数据】Doris 构建实时数仓落地方案详解(二):Doris 核心功能解读

Doris 构建实时数仓落地方案详解(二):Doris 核心功能解读 1.Doris 发展历程2.Doris 三大模型3.Doris 数据导入4.Doris 多表关联5.Doris 核心设计6.Doris 查询优化7.Doris 应对实时数仓的痛点 1.Doris 发展历程 Apache Doris 是由 百度 研发并…

华为云云耀云服务器L实例评测|用Python的Flask框架加Nginx实现一个通用的爬虫项目

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,AWS/阿里云资深使用…

QUIC协议报文解析(三)

在前面的两篇文字里我们简单介绍了QUIC的发展历史,优点以及QUIC协议的连接原理。本篇文章将会以具体的QUIC报文为例,详细介绍QUIC报文的结构以及各个字段的含义。 早期QUIC版本众多,主要有谷歌家的gQUIC,以及IETF致力于将QUIC标准…

数据结构之堆的结构与实现

目录 一、堆的概念及结构 1.1堆的概念 1.2堆的性质 1.3堆的结构 二、堆的实现 2.1堆向下调整算法(父亲与孩子做比较) 2.2堆的向上调整算法(孩子与父亲做比较) 2.3堆的创建(向下建堆) 2.4向下建堆的时…

26 WEB漏洞-XSS跨站之订单及Shell箱子反杀记

目录 xss平台及工具使用session与Cookie获取问题演示案例某营销订单系统XSS盲打_平台某Shell箱子系统XSS盲打_工具其他参考应用案例-后台权限维持工具Http/s数据包提交Postman使用 xss平台及工具使用 凡是有数据交互的地方,前端是接收数据的,后端是要把…

Android Kotlin 高阶详解

前言 本文主要讲述kotlin高阶相关的内容,如果对kotlin基础还不了解的, 可以参考文章Android Kotlin 基础详解_袁震的博客-CSDN博客 1,与Java的相互调用 1.1在kotlin中调用java代码 大多数的java代码都可以直接在kotlin中调用&#xff0c…

Spring Cloud Alibaba Nacos注册中心(单机)

文章目录 Spring Cloud Alibaba Nacos注册中心(单机)1. docker 安装 nacos(先别着急)2. 配置nacos持久化到mysql、2.1 properties 文件 3. java注册3.1 POM文件3.2 properties文件3.3 测试配置中心 4.注册中心4.1 配置文件4.2测试…

【八大经典排序算法】选择排序

【八大经典排序算法】选择排序 一、概述二、思路解读三、代码实现(升序)四、优化(升序) 一、概述 选择排序作为一种简单直观的排序算法,最早由美国计算机科学家 Donald Knuth 在1968年提出。 选择排序的思想是将数组…

小程序从无到有教学教程-- 01.重置华为云服务器Huawei Cloud EulerOS 2.0版本并且设置安全组

概述 专门拿了专栏来讲解,所以目录结构就比较简单了 文章目录 概述修改华为云操作系统选择Huawei Cloud EulerOS 2.0 镜像顺便配置华为安全组 修改华为云操作系统 这里选择华为最新的系统,不过也就2.0~ 选择Huawei Cloud EulerOS 2.0 镜像 这里记住密…

企业架构LNMP学习笔记61

Nginx作为tomcat的前段反向代理: 在实际业务环境中,用户是直接通过域名访问,基于协议一般是http、https等。默认tomcat运行在8080端口。一般会通过前端服务器反向代理到后端的tomcat的方式,来实现用户可以通过域名访问tomcat的we…

bat写的git命令大全(适合初学者)掌握命令行下的Git操作!

欢迎来到Git!无论你是一位Git初学者,这个在命令大全将帮助你在命令行下熟练运用Git,提高版本控制和团队协作的效率。从基本的仓库管理到分支操作,从提交修改到远程仓库同步,这个命令大全涵盖了Git的各种常用功能和技巧…

LeetCode-热题100-笔记-day31

105. 从前序与中序遍历序列构造二叉树https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历&#xff0c…

QT-day2

完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮…

【QT】day2

1.完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按…

孙哥Spring源码第23集

第23集 finishBeanFactoryInitialization处理过程 1、处理国际化,事件操作,onRresh()的操作,注册监听器。 2、finishBeanFactoryInitialization(beanFactory)核心目的 通过Spring的BeanFactory创建单例(非延迟)这些对…