当前位置: 首页 > news >正文

python抓包 -- 用wireshark抓包、解析--scapy、PyShark

一、 安装scapy模块

1、打开DOS命令行

python -m pip install scapy

2、sniff()函数
功能:数据嗅探
参数:
iface: 指定在哪个网络接口上抓包

count: 表示要捕获数据包的数量。默认为0(不限制数量)

filter: 流量的过滤规则。使用的是 BPF 的语法

prn: 定义回调函数,使用lambda表达式来写回调函数(当符合filter的流量被捕获时,就会执行回调函数)

【BPF过滤语法举例】
只捕获某个IP主机进行交互的流量:host 192.168.1.124

只捕获某个MAC地址主机的交互流量:ether src host 00:87:df:98:65:d8

只捕获来源于某一IP的主机流量:src host 192.168.1.125

只捕获去往某一IP的主机流量:dst host 192.168.1.154

只捕获80端口的流量:port 80

只捕获除80端口以外的其他端口流量:!port 80

只捕获ICMP流量:ICMP

只捕获源地址为192.168.1.125且目的端口为80的流量:src host 192.168.1.125 && dst port 80

应用

只捕获源地址为192.168.1.124且目的端口为80的流量:

from scapy.all import *
sniff(filter='src host 192.168.1.124 && dst port 80', prn=lambda x:x.summary())# sniff(filter='src host 192.168.2.116 && dst port 80', iface='WLAN', prn=lambda x: x.summary())

二、WireShark

安装: https://www.wireshark.org/download.html

1、开始抓包示例

打开主界面,选择对应的网卡,右键,会出现Start Capture(开始捕获),点击即可进行捕获该网络信息,开始抓取网络包
在这里插入图片描述
执行需要抓包的操作,如ping www.baidu.com。
说明:ip.addr == 180.101.49.11 and icmp 表示只显示ICPM协议且源主机IP或者目的主机IP为119.75.217.26的数据包。
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

2、表达式规则

类型Type(host、net、port)
方向Dir(src 源端 、dst 目的端)
协议Proto(ether、ip、tcp、udp、http、icmp、ftp等)
逻辑运算符(&& 与、|| 或、!非)

序列号:Sequence Number
确认应答信号:Acknowledgement Number

2.1 抓包过滤器语法和实例:

(1)协议过滤:直接在抓包过滤框中直接输入协议名即可。

tcp,只显示TCP协议的数据包列表
http,只查看HTTP协议的数据包列表
icmp,只显示ICMP协议的数据包列表

(2)IP过滤

host 192.168.1.104
src host 192.168.1.104
dst host 192.168.1.104

(3)端口过滤
port 80
src port 80
dst port 80

(4)逻辑运算符&&与、|| 或、!非
src host 192.168.1.104 &&dst port 80 抓取主机地址为192.168.1.80、目的端口为80的数据包

host 192.168.1.104 || host 192.168.1.102 抓取主机为192.168.1.104或者192.168.1.102的数据包

!broadcast 不抓取广播数据包

2.2 显示过滤器语法和实例:

(1)比较操作符
== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于

(2)协议过滤
直接在Filter框中直接输入协议名即可。注意:协议名称需要输入小写。

tcp,只显示TCP协议的数据包列表

http,只查看HTTP协议的数据包列表

icmp,只显示ICMP协议的数据包列表

(3) ip过滤
ip.src ==112.53.42.42 显示源地址为112.53.42.42的数据包列表

ip.dst==112.53.42.42, 显示目标地址为112.53.42.42的数据包列表

ip.addr == 112.53.42.42 显示源IP地址或目标IP地址为112.53.42.42的数据包列表

(4)端口过滤
tcp.port ==80, 显示源主机或者目的主机端口为80的数据包列表。

tcp.srcport == 80, 只显示TCP协议的源主机端口为80的数据包列表。

tcp.dstport == 80,只显示TCP协议的目的主机端口为80的数据包列表。

(5) http模式过滤
http.request.method==“GET”, 只显示HTTP GET方法的。

(6)逻辑运算符为 and/or/not
过滤多个条件组合时,使用and/or。比如获取IP地址为192.168.0.104的ICMP数据包表达式为ip.addr == 192.168.0.104 and icmp

(7)按照数据包内容过滤
假设我要以ICMP层中的内容进行过滤,可以单击选中界面中的码流,在下方进行选中数据。

2.3 常见用显示过滤需求及其对应表达式

数据链路层:
筛选mac地址为04:f9:38:ad:13:26的数据包

eth.src == 04:f9:38:ad:13:26

筛选源mac地址为04:f9:38:ad:13:26的数据包----

eth.src == 04:f9:38:ad:13:26

网络层:
筛选ip地址为192.168.1.1的数据包

ip.addr == 192.168.1.1

筛选192.168.1.0网段的数据

ip contains “192.168.1”

传输层:
筛选端口为80的数据包

tcp.port == 80

筛选12345端口和80端口之间的数据包

tcp.port == 12345 &&tcp.port == 80

筛选从12345端口到80端口的数据包

tcp.srcport == 12345 &&tcp.dstport == 80

应用层:
特别说明: http中http.request表示请求头中的第一行(如GET index.jsp HTTP/1.1) http.response表示响应头中的第一行(如HTTP/1.1 200 OK),其他头部都用http.header_name形式。

筛选url中包含.php的http数据包

http.request.uri contains “.php”

筛选内容包含username的http数据包

http contains “username”

三、用Scapy解析pcap格式数据

读取 pcapng 文件有两种方式:

3.1 一次性读入内存

from scapy.all import *
pkts = rdpcap(‘test.pcap’)
//循环读 
for pkt in pkts:if IP in pkt and TCP in pkt:if pkt[IP].dst == tcp_ip and pkt[TCP].dport == tcp_port:# print("666")print(pkt['TCP'].dport)

pkt 中有多个数据包。pkt可当做列表顺序访问。
例如,访问第n个包:pkts[n]

访问每层里的内容pkt[‘每层的名字’].内容名,如pkt[‘IP’].dport pkt[‘TCP’].sport 等

3.2 逐行读

   pr = PcapReader('./tcp.pcapng')pkt = pr.read_packet()pkt.show()  #//显示格式化数据包IP = pkt['IP']print(IP)

每次调用read_packet() 都会读入下一个新的包到内存中,
现在一个数据包装入了pkt变量中。

3.3 提取 TCP 数据包的原始数据

   print(raw(pkt))  # 获取数据包的原始字节print(bytes(pkt))print(bytes_hex(pkt))  # 以可读格式打印数据包的原始字节print(bytes_hex(pkt)[24:28])

在这里插入图片描述

四、PyShark

https://blog.csdn.net/youyouxiong/article/details/138327285

安装 PyShark 库,它提供了 Wireshark 的 Python 接口:

pip install pyshark

分析

PyShark 可以读取 Wireshark 生成的 .pcap 或 .pcapng 文件,并进行分析:

import pysharkcap = pyshark.FileCapture('path_to_packet_file.pcapng', display_filter='http')
for packet in cap:print(f"{packet.ip.src} accessed {packet.http.host} at {packet.http.request.full_uri}")

这段代码将分析指定路径的抓包文件,并打印出每个 HTTP 请求的源 IP 地址、目标主机和访问的 URI。

相关文章:

python抓包 -- 用wireshark抓包、解析--scapy、PyShark

一、 安装scapy模块 1、打开DOS命令行 python -m pip install scapy2、sniff()函数 功能&#xff1a;数据嗅探 参数&#xff1a; iface: 指定在哪个网络接口上抓包 count: 表示要捕获数据包的数量。默认为0(不限制数量) filter: 流量的过滤规则。使用的是 BPF 的语法 prn:…...

uni-app开发日志:unicloud使用时遇到的问题解决汇总(不断补充)

插件安装后提示与原数据库表冲突&#xff08;2024.7.18&#xff09; 安装uni-admin后再安装uni-cms&#xff0c;在uni-admin中添加好菜单&#xff0c;结果提示该错误 回到hbuilder中uniCloud/database中找到冲突的部分 比较一下&#xff0c;选中老的删除 opendb-news-articl…...

插入排序算法详解

快速排序&#xff08;Quick Sort&#xff09;是计算机科学与技术领域中非常经典的一种排序算法&#xff0c;由C. A. R. Hoare在1960年提出。它应用分治思想进行排序&#xff0c;通过对数据进行分区操作&#xff0c;并递归地对分区后的子序列进行排序&#xff0c;从而达到整个序…...

parallel 详细解析 Java 8 Stream API 中的 parallel 方法

详解Java Stream的并行处理&#xff08;Parallel&#xff09; Java 8 引入了Stream API&#xff0c;提供了一种便捷而高效的方式来处理集合数据。Stream API使得对数据集合的操作变得更为简洁和易读。 其中&#xff0c;并行流&#xff08;parallelStream&#xff09;是Stream …...

不同业务场景下通过mars3d实现绕点旋转效果

1.鼠标单击地图某一处就对该点进行绕点旋转效果 相关代码&#xff1a; 1.相关绕点旋转的初始化代码&#xff1a; const rotatePoint new mars3d.thing.RotatePoint({direction: false, // 方向 true逆时针&#xff0c;false顺时针time: 50 // 给定飞行一周所需时间(单位 秒)&…...

重塑水利未来:智慧水利解决方案的探索与实践,从物联网、大数据到人工智能,科技如何赋能水利行业,实现智慧化管理与决策

本文关键词&#xff1a;智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…...

IO、进程、线程03

第一题&#xff1a;预习 opendir 和 readdir函数 opendir 和 readdir 是两个在C语言&#xff08;特别是使用POSIX标准的系统&#xff0c;如Linux和UNIX&#xff09;中用于目录遍历的函数。这两个函数属于标准的C库中的目录操作部分&#xff0c;通常与<dirent.h>头文件一…...

算法力扣刷题记录 五十二【617.合并二叉树】

前言 二叉树篇&#xff0c;继续。 记录 五十二【617.合并二叉树】 一、题目阅读 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要…...

Java中的ArrayList和LinkedList有什么区别?

Java中的ArrayList和LinkedList是两种常用的集合实现类&#xff0c;它们都属于Java集合框架的一部分&#xff0c;但它们在内部实现、性能特点、使用场景等方面存在明显的区别。以下是对这两种集合的详细比较&#xff1a; 1. 数据结构差异 ArrayList&#xff1a;ArrayList是动…...

Linux C++ 058-设计模式之解释器模式

Linux C 058-设计模式之解释器模式 本节关键字&#xff1a;Linux、C、设计模式、解释器模式 相关库函数&#xff1a; 概念 解释器模式&#xff08;Interpreter Pattern&#xff09;提供了评估语言的语法或表达式的方式&#xff0c;它属于行为型模式。 解释器模式用于构建一…...

MDK5没有DeviceName

遇到的问题是Jlink驱动问题 不是引脚接反 使用国产GD单片机不同的工程&#xff0c;有的有Device Name,有的没有Device Name&#xff08;下图是弄好的情况&#xff0c;有Device Name&#xff09; 硬件链接&#xff0c;和设备都没有问题&#xff1a;无法仿真&#xff0c;无法下…...

在LabVIEW中实现图像矫正

在LabVIEW中实现图像矫正&#xff0c;特别是将倾斜的笔记本图像&#xff08;如左图&#xff09;校正为正视图像&#xff08;如右图&#xff09;&#xff0c;通常需要以下几个步骤&#xff1a; 1. 获取图像 使用图像采集设备或加载图像文件来获取图像数据。 2. 图像预处理 对…...

Apache httpd-vhosts.conf 配置详解(附Demo)

目录 前言1. 基本配置2. http和https3. 重定向和代理配置4. 实战前言 Nginx的相关配置推荐阅读:Nginx将https重定向为http进行访问的配置(附Demo) 1. 基本配置 httpd-vhosts.conf 是 Apache HTTP Server 配置虚拟主机(Virtual Hosts)的文件 虚拟主机允许在一台服务器上…...

活动回顾 | AutoMQ 联合 GreptimeDB 共同探讨新能源汽车数据基础设施

7 月 13 日&#xff0c;AutoMQ 携手 GreptimeDB“新能源汽车数据基础设施” 主题 meetup 在上海圆满落幕。本次论坛多角度探讨如何通过创新的数据管理和存储架构&#xff0c;提升汽车系统的性能、安全性和可靠性&#xff0c;从而驱动行业的持续发展和创新&#xff0c;涵盖 Auto…...

格式工厂转换视频分辨率

1、下载和安装 http://www.pcfreetime.com/formatfactory/CN/index.html 2、打开视频 3、设置分辨率等参数 也可以选择保持原分辨率 4、执行导出 5、打开输出所在位置...

ReAct 大模型提示框架

你可能不熟悉 ReAct&#xff0c;这是一个旨在增强语言模型 (LLM) 决策能力的尖端框架。 通过使用新的观察结果更新 LLM 的上下文窗口并提示其重新评估信息&#xff0c;ReAct 促进了类似于人类思维过程的推理水平&#xff0c;超越了诸如思维链提示之类的旧技术。 在本文中&…...

JavaEE:Lombok工具包的使用以及EditStarter插件的安装

Lombok是一个Java工具库&#xff0c;通过添加注解的方式&#xff0c;简化Java的开发。 目录 1、引入依赖 2、使用 3、原理解释 4、更多使用 5、更快捷的引入依赖 1、引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lomb…...

基于纹理和统计图像特征集成的计算机辅助乳腺癌检测

诊断通常使用组织病理学切片&#xff0c;可以确定组织是否处于导管原位癌(DCIS)阶段&#xff0c;其中癌细胞尚未扩散到周围乳腺组织&#xff0c;或浸润性导管癌(IDC)阶段&#xff0c;其中细胞已渗透到邻近组织。对于医生来说&#xff0c;检测IDC非常耗时且具有挑战性。因此&…...

Java基础 - 简介和配置环境变量

目录 一. 简介 二. 开发环境配置 下载JDK 配置环境变量 Java_Home配置, Path 配置 CLASSPATH 配置 三. 编辑器选择 1.JetBrains 2. Eclipse 3.vscode 下载vscode 安装 vscode插件 四. 总结 一. 简介 Java 是由 Sun Microsystems 公司&#xff08;后被 Oracle 收…...

水域救援装备的详细简介_鼎跃安全

水域救援行动需要救援人员配备全面、专业的装备&#xff0c;以应对各种复杂的水域环境和救援任务。水域救援套装应运而生&#xff0c;它集合了水域救援所需的各类关键装备&#xff0c;为救援人员提供全方位的保护和辅助&#xff0c;确保数援行动的高效与安全。 水域救援头盔&am…...

城通网盘限速破解:ctfileGet让下载效率提升10倍的技术革命

城通网盘限速破解&#xff1a;ctfileGet让下载效率提升10倍的技术革命 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 在数字化协作日益频繁的今天&#xff0c;网盘已成为信息传递的重要枢纽。然而城通…...

服务器很卡,是CC攻击造成的吗

之前有客户反馈&#xff0c;服务器有一段时间使用总是会遇到卡的情况&#xff0c;查看并无流量攻击的情况&#xff0c;程序也未进行过什么修改&#xff0c;用户人数也没有什么变化。来咨询是什么原因导致的。导致机器卡的情况&#xff0c;一般有带宽不够&#xff0c;硬件性能不…...

工业以太网双雄:从协议原理到选型落地,EtherCAT与PROFINET实战解析

1. 工业以太网的双雄之争&#xff1a;为什么选型这么难&#xff1f; 第一次接触工业以太网协议选型时&#xff0c;我盯着EtherCAT和PROFINET的参数表发呆了整整一上午。就像面对两个各有所长的武林高手&#xff0c;一个轻功了得&#xff0c;一个内力深厚&#xff0c;实在难以抉…...

5分钟搞懂格拉姆角场(GAF):用Python实现时间序列转图像的全流程

5分钟实战格拉姆角场&#xff08;GAF&#xff09;&#xff1a;Python代码实现与工业级应用解析 时间序列分析一直是数据科学领域的核心挑战之一。传统方法往往难以捕捉复杂的时间依赖关系&#xff0c;而格拉姆角场&#xff08;Gramian Angular Field, GAF&#xff09;技术通过将…...

Windows 10终极指南:免费开启HEIC缩略图预览功能

Windows 10终极指南&#xff1a;免费开启HEIC缩略图预览功能 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 还在为iPhone拍摄的照片在…...

Pixel Epic · Wisdom Terminal保姆级教程:备份与恢复研报工程文件全指南

Pixel Epic Wisdom Terminal保姆级教程&#xff1a;备份与恢复研报工程文件全指南 1. 引言&#xff1a;为什么需要备份研报工程文件 在Pixel Epic Wisdom Terminal中&#xff0c;每一份研究报告都是你与AI贤者共同创造的智慧结晶。就像RPG游戏中的存档点一样&#xff0c;定…...

从Solid模块到轨迹规划:一个完整机械臂SimMechanics仿真项目的保姆级拆解

从Solid模块到轨迹规划&#xff1a;一个完整机械臂SimMechanics仿真项目的保姆级拆解 机械臂仿真一直是工业自动化和机器人研究中的核心课题。不同于传统Adams等专业仿真软件&#xff0c;SimMechanics凭借其与Matlab/Simulink的无缝集成&#xff0c;为工程师提供了从建模到控制…...

新手零压力入门,快马ai带你三步搞定nodejs环境配置

最近在帮几个朋友入门Node.js时&#xff0c;发现很多新手卡在了环境配置这一步。作为一个过来人&#xff0c;我完全理解那种面对命令行手足无措的感觉。好在现在有了InsCode(快马)平台&#xff0c;可以快速生成一个专为Node.js新手设计的入门项目模板&#xff0c;把抽象的配置过…...

Performance-Fish:环世界性能优化的全方位解决方案

Performance-Fish&#xff1a;环世界性能优化的全方位解决方案 【免费下载链接】Performance-Fish Performance Mod for RimWorld 项目地址: https://gitcode.com/gh_mirrors/pe/Performance-Fish 问题诊断&#xff1a;环世界性能瓶颈深度剖析 &#x1f50d; AI决策系统…...

壁仞科技上市后首次年报:2025年营收10亿 经调整亏损8.7亿

雷递网 雷建平 3月30日上海壁仞科技股份有限公司&#xff08;股份代号&#xff1a;6082&#xff09;今日发布截至2025年12月31日的财报。财报显示&#xff0c;壁仞科技2025年营收为10.35亿元&#xff0c;较上年同期的3.37亿元增长207.2%。壁仞科技2025年毛利为5.57亿元&#xf…...