python捕获异常和scapy模块的利用
Python捕获异常
当程序运行时,因为遇到未知的错误而导致中止运行,便会出现Traceback 消息,打印异常。异常即是一个事件,该事件会在程序执行过程中发生,影响程序的正常执行。一般情况下,在Python 无法正常处理程序时就会发生一个异常。异常是Python 对象,表示一个错误。当Python 脚本发生异常时我们需要响应处理它,否则程序会终止执行。
捕获异常
如果一个语句发生了错误或异常,跳过该语句的执行,执行另外的语句
捕获异常使用关键字try except语句
try关键字使用来监控代码的
如果是try里面的代码出现异常就会被except关键字捕捉到并执行except里的语句
try:num=int(input())
except:print("请输入一个整数")num=int(input())
如果是用户输入的是字符串或者特殊字符那么就会报错异常被except捕捉到后就会打印让用户输入整数并且再次输入
异常的类型
except关键字是可以捕捉所有异常的
当然我们也可以控制捕捉的异常
下面是常见的异常
| 异常 | 描述 |
|---|---|
| SyntaxError | 语法错误 |
| NameError | 未声明/初始化对象 |
| IndexError | 序列中没有此索引 |
| KeyboardInterrupt | 用户中断执行(Ctrl+C) |
| EOFError | 没有内建输入,到达EOF 标记(Ctrl+D) 不适用windows 系统 |
| IOError | 输入/输出操作失败 |
| ValueError | 当操作或函数接收到具有正确类型但值不适合的参数, 并且情况不能用更精确的异常,例如 IndexError来描述时将被引发。 |
| TypeError | 字符串与整数相加时触发。 |
如果说我只想要捕获语法错误
try:num=int(input())
except SyntaxError:print("请输入一个整数")num=int(input())
想要捕获什么异常就可以在except后面加入就可以了
scapy模块
scapy 模块能够发送、捕获、分析和铸造网络数据包
Windows 下安装scapy
python -m pip install scapy

在Linux下安装
sudo apt install scapy
启动之后可能会需要安装pyX模块
pip install pyX
可能会出现python虚拟环境报错
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

解决方法:
下载虚拟环境
apt install python3.11-venv

python3 -m venv tutorial-env
.创建一个虚拟环境中,决定在目录里你想要的 把它和运行的 venv 模块作为一个脚本用的目录路径
最后在执行
source tutorial-env/bin/activate
就可以成功安装了
方法简绍
| 发送数据包的函数 | 说明 |
|---|---|
| sr(pkt) | 发送数据包,接收所有返回包 |
| sr1(pkt) | 发送数据包,接收一个返回包 |
| send(pkt) | 发送数据包,不等待返回包 |
| srp(pkt) | 发送2 层数据包,等待回应 |
| pkt) | 发送数据包,不等待返回包 |
| srp(pkt) | 发送2 层数据包,等待回应 |
| sendp(pkt) | 发送2 层数据包,不等待返回包 |
案例探测网段内ip存活脚本
from scapy.all import *
from scapy.layers.inet import IP, TCP,ICMP
import logging
logging.getLogger("scapy.runtime") .setLevel(logging.ERROR)
attack_net = input("请输入目标网段或IP: ")
self_ip = input("请输入本机IP: ")
list_net=attack_net.split(".")
if list_net[3]=='0/24' or list_net[3]=="*": #如果是0/24或*探测该网段下全部ipfor num in range(1,255):i=str(num)attack_net=attack_net[0:attack_net.rfind(".")+1:1]attack_net=f"{attack_net}{num}"pkt = IP(dst=attack_net,src=self_ip)/ICMP()res=sr1(pkt,verbose=False, timeout=1) #每个ip探测延迟1秒if res:print(f"[+]主机存活{attack_net}")print("[+]主机存活扫描完成")
elif list_net[3]!='': #如果不为空就只探测该主机pkt = IP(dst=attack_net, src=self_ip) / ICMP()res = sr1(pkt,verbose=False)if res and res.type==0:print(f"[+]主机存活{attack_net}")else:print("请输入正确的网段或IP")
成果如下

相关文章:
python捕获异常和scapy模块的利用
Python捕获异常 当程序运行时,因为遇到未知的错误而导致中止运行,便会出现Traceback 消息,打印异常。异常即是一个事件,该事件会在程序执行过程中发生,影响程序的正常执行。一般情况下,在Python 无法正…...
CSS+Javascript+Html日历控件
最近,因需要用HTMLJAVASCRIPTCSS实现了一个日历控件,效果如下: 单击上月、下月进行日历切换。当前日期在日历中变颜色标注显示。还是老老套路、老方法,分HMLCSSJAVASCRIPT三部分代码。 一、html代码 <h1>学习计划</h1…...
让企业的数据用起来,数据中台=数据治理?
加gzh“大数据食铁兽”,了解更多数据治理信息。 先说结论:数据中台是数据管理/治理的工具之一,数据治理是3分技术7分管理及运营。 数据中台的定义: 狭义的数据中台指在企业内部通过对数据半成品、算法、模型、工具等能力的积累&a…...
【人工智能Ⅰ】5-粒子群算法
【人工智能Ⅰ】5-粒子群算法 文章目录 【人工智能Ⅰ】5-粒子群算法5.1 粒子群算法PSO基本思想5.2 PSO介绍5.3 PSO求最优解5.4 算法流程5.5 PSO构成要素群体大小m权重因子最大速度Vm停止准则粒子空间的初始化领域的拓扑结构 5.6 PSO应用5.7 PSO改进动态调整惯性权重收缩因子法 5…...
软考高项-49个项目管理过程输入、输出和工具技术表
知识领域数量五大过程组启动规划执行监控收尾整体7制订项目章程制订项目管理计划指导与管理项目工作 管理项目知识 监控项目工作 实施整体变更控制 结束项目或阶段范围6规划范围管理 收集需求 定义范围 创建WBS 确认范围 控制范围 进度6规划进度管理 定义活动...
《C和指针》(7)函数
问题 具有空函数体的函数可以作为存根使用。你如何对这类函数进行修改,使其更加有用? 答:当存根函数被调用时,打印一条消息,显示它已被调用,或者也可以打印作为参数传递给它的值。 .如果在一个函数的声明中…...
vue3中的Props
Props声明 一个组件需要显示声明它所接受的props,这样vue才能知道外部传入的哪些是props,哪些是透传attribute 在使script setup的单文件中,props可以使用 defineProps()宏来声明: <script setup> const props definePro…...
ElasticSearch搜索技术深入与聚合查询实战
ES分词器详解 基本概念 分词器官方称之为文本分析器,顾名思义,是对文本进行分析处理的一种手段,基本处理逻辑为按照预先制定的分词规则,把原始文档分割成若干更小粒度的词项,粒度大小取决于分词器规则。 分词发生时…...
vue+element ui中的el-button自定义icon图标
实现 button的icon属性自定义一个图标名称,这个自定义的图标名称会默认添加到button下i标签的class上,我们只需要设置i标签的样式就可以了 ##3. 按钮上使用自定义的icon 完整代码 <div class"lookBtn"><el-button icon"el-icon-…...
PyQt5:构建目标检测算法GUI界面 (附python代码)
文章目录 1.界面2.代码3.Analyze 1.界面 目标检测算法一般就是检测个图片,然后显示图片结果。 最简单的情况,我们需要一个按钮读取图片,然后后有一个地方显示图片。 2.代码 import sys import numpy as np from PIL import Imagefrom PyQt…...
SV-10A-4G IP网络报警非可视终端 (4G版)
SV-10A-4G IP网络报警非可视终端 (4G版) https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.621e3d0dpv5knb&ftt&id745728046948 产品简介: 通过局域网/广域网网组网的网络报警系统,改变传统局域网组网…...
对xml文本元素赋值
public static void main(String[] args) {Map map ....;//数据Iterator it doc.getRootElement().elementIterator();//doc是xml模板//将元素ID与输入框的值放在map中while (it.hasNext()) {org.dom4j.Element nextRoot (org.dom4j.Element) it.next();Iterator nextIt ne…...
【k8s】资源管理命令-陈述式
一、资源管理介绍 1、资源管理概念 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。 //kubernetes的本质就是一个集群系统,用户可以在集群中部署各种服务,起始就是在kubernetes集群中运行一个个…...
无需频繁登录支付宝网站即可完成商家转账,实时到账,方便安全快捷
大家好,我是小悟 转账到支付宝账户是一种通过 API 完成单笔转账的功能,支付宝商家可以向其他支付宝账户进行单笔转账。 商家只需输入另一个正确的支付宝账号,即可将资金从本企业支付宝账户转账至另一个支付宝账户。 该产品适用行业较广&am…...
Vue 监听属性 watchEffect
watchEffect 函数:自动收集依赖源,不用指定监听哪个数据,在监听的回调中用到哪个数据,就监听哪个数据。 而 watch 函数:既要指定监听的数据,也要指定监听的回调。 watchEffect 函数:类似于 co…...
设计模式: 关于项目架构,技术选型,技术债务问题与解决方案
正确的选择是良好的开端 1 )指标 系统稳健性系统健壮性 2 ) 衡量 在概念层次衡量架构质量在实际开发中衡量架构好坏 3 ) 架构分类 系统架构 从系统维度,负责整体系统的架构设计基础服务和各系统间协调,着眼全局比如关注负载,…...
el-tabs 默认选中第一个
1. 实际开发中el-tabs 都会设置第一个为默认值 ,这样会好看一点, 而渲染的数据经常是通过后端返回的数据 , v-model 无法写死默认值 解决办法 , 通过计算机属性 ,在data 定义一个 selectedTab watch: {defaultTab(newVal) {this.selectedTab newVal; // 设置第一个标签页…...
R -- match,pmatch,charmatch
文章目录 matchpmatchcharmatch match ?matchDescription match returns a vector of the positions of (first) matches of its first argument in its second. 第一个向量中的元素在第二个向量中的位置,如果第二个向量中有多个仅返回第一个match 元素的位置&…...
数据结构——线性表①(顺序表)
一、线性表定义 线性表是一种数据结构,它是由n个具有相同数据类型的数据元素a1,a2,…,an组成的有限序列。 其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个…...
MFC网络编程-Udp客户端
目录 1、UI的设计: 2、代码的实现: (1)、重写CSocket虚函数OnReceive,并且传入对话框的指针 (2)、初始化SOCKET (3)、绑定本地IP和端口 (4)、…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
