【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()
相关推荐
巴里巴气1 小时前
selenium基础知识 和 模拟登录selenium版本
爬虫·python·selenium·爬虫模拟登录
19891 小时前
【零基础学AI】第26讲:循环神经网络(RNN)与LSTM - 文本生成
人工智能·python·rnn·神经网络·机器学习·tensorflow·lstm
JavaEdge在掘金2 小时前
Redis 数据倾斜?别慌!从成因到解决方案,一文帮你搞定
python
ansurfen2 小时前
我的第一个AI项目:从零搭建RAG知识库的踩坑之旅
python·llm
前端付豪2 小时前
20、用 Python + API 打造终端天气预报工具(支持城市查询、天气图标、美化输出🧊
后端·python
前端付豪2 小时前
19、用 Python + OpenAI 构建一个命令行 AI 问答助手
后端·python
amazinging2 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习
wgyang20163 小时前
我的第一个LangFlow工作流——复读机
python
Zhen (Evan) Wang3 小时前
(豆包)xgb.XGBRegressor 如何进行参数调优
开发语言·python
我爱一条柴ya3 小时前
【AI大模型】线性回归:经典算法的深度解析与实战指南
人工智能·python·算法·ai·ai编程