【Python】使用python解析someip报文,以someip格式打印报文

文章目录

1.安装scapy库

使用 pip 安装 scapy 第三方库,打开 cmd,输入以下命令:

cmd 复制代码
pip install scapy

出现如图所示,表示安装成功:

2.示例

要解析someip格式报文,需要导入someip模块:

python 复制代码
from scapy.contrib.automotive.someip import *
python 复制代码
# 导入someip模块
from scapy.contrib.automotive.someip import * 

# someip报文
message = b"\x07\xff\x80\x01\x00\x00\x00S\x00\x00\x00\x06\x01\x01\x02\x00\x0c\xf1\xdds\x84\x00\x00\x00>[\x19\xa2\xd1aV\xce'\xc1)\xa9x02Eg\x00\x00\x00D"

rev_sip = SOMEIP(_pkt=message) # 解析someip报文
rev_sip.show() # 以someip格式,打印报文

打印的someip格式报文如下:

配合UDP收发报文如下:

python 复制代码
from scapy.all import *
from scapy.contrib.automotive.someip import * # load_contrib('automotive.someip')
import socket
import time

# 创建UDP套接字
udpsock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

# 绑定本地信息
local_addr = ("192.168.1.100", 10000)  
remote_addr = ('192.168.1.101', 10001)
udpsock.bind(local_addr)

data = udpsock.recvfrom(1024) # 接收数据
if len(data) > 0:
    print(data) # 打印普通格式报文
    rev_sip = SOMEIP(_pkt=data[0])
    rev_sip.show() # 打印someip格式报文
    udpsock.sendto(data[0],remote_addr) # 发送数据  
    
# 关闭套接字
udpsock.close()
相关推荐
FreakStudio2 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户0332126663673 小时前
使用 Python 从零创建 Word 文档
python
Csvn8 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽9 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户5569188175311 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei1 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
aqi001 天前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
Csvn1 天前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python