惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog
Jina AI
Jina AI
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
美团技术团队
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42
The Cloudflare Blog
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
罗磊的独立博客
Microsoft Security Blog
Microsoft Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
GbyAI
GbyAI
腾讯CDC
MongoDB | Blog
MongoDB | Blog

博客园 - 图像处理工程师

电磁课 QT 5G NR Shell学习笔记 C git 体检清单 5G NR 随机接入RACH流程 SLIV 帮朋友写的两篇文章 与疯姐的对话 实现C(i,j)=A(m,n,w)+B(m,n) 误差处理相关 全局变量和局部变量 Yeelink:将复杂的传感器以极简的方式组到同一个网络内 基站分布:GDOP C++学习路线图 Matlab中三点确定质心 三维曲面Matlab仿真
Python安装插件
图像处理工程师 · 2022-11-15 · via 博客园 - 图像处理工程师

pandas:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-packet pandas

pip自身升级原因是:用pip install ***,pip自身需最新版。

先去官网下载.whl文件:https://pypi.org/project/pip/#files

并放在目录:D:\SoftWare\Python\Lib\site-packages

再执行:python.exe -m pip install --upgrade pip

pip升级:

python -m pip install --upgrade pip

pip升级:

python -m pip install --upgrade pip -i https://pypi.douban.com/simple

package安装:

pip install scapy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

 python打包程序发布版本:

 pyinstaller -w -F IQSort.py

C语言发布版本:

http://wjhsh.net/bEngi1-p-12360305.html

说明:初步实现提取pcap包中某个字段的值,如MCS,SINR, TPC等,但需要提前做适配。

补充:Python处理pcap的意义不大,WireShark用的好的话,效率比此方式高很多。

Python3.x安装:略。

pip升级:python -m pip install --upgrade pip -i https://pypi.douban.com/simple

相关package安装:pip install scapy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

from scapy.all import rdpcap     //导入相关模块

p = rdpcap(r"C:\Users\Administrator\Desktop\1\123.pcap")    //读包操作并保存至p中,如上面的附件1,共有len(p)=221410组数据:

上行MCS131:nr_info.message.type==0x83            //以第22174条数据为例,过滤条件是:nr_info.message.type==0x83

for i in range(len(p)):    //遍历221410条数据

    if 'Raw' in p[i]:          //筛选带有效信息的数据

        if p[i]['Raw'].load[0]==131:      //type类型0x83对应的十进制是131,相当于上面的过滤条件

            for j in range(len(p[i]['Raw'].load)):     //遍历type类型为0x83数据的load,load中共j个元素索引

                if j==88:

                    print(i,p[i]['Raw'].load[j],p[i]['Raw'].load[j+4])   //在type类型为0x83数据的load中,MCS索引是88,TPC索引是92

原始数据包

程序运行结果

下行MCS128:

for i in range(len(p)):    

    if 'Raw' in p[i]:

        if p[i]['Raw'].load[0]==128:

            for j in range(len(p[i]['Raw'].load)):

                if (j==88) and (p[i]['Raw'].load[j]>0):

                    print(i,p[i]['Raw'].load[j])

PUCCH SINR  133 29

PUSCH SINR 134

for i in range(len(p)):    //遍历221410条数据

    if 'Raw' in p[i]:          //筛选带有效信息的数据

        if p[i]['Raw'].load[0]==134:         //type类型0x86对应的十进制是134

            for j in range(len(p[i]['Raw'].load)):     //遍历type类型为0x83数据的load,load中共j个元素索引

                if (j==26) and (p[i]['Raw'].load[j]>0):   //按0x86过滤出的部分数据组layer字段缺失,需要进一步细化过滤条件,即numOflayers>0

                    print(i,p[i]['Raw'].load[j],p[i]['Raw'].load[j+1],p[i]['Raw'].load[j+2],p[i]['Raw'].load[j+3])     //layer的索引是26,RSSI索引是27,SINR为28 29

MIB、SIB1:nr_info.dl_tb_data.rnti == 0||nr_info.dl_tb_data.rnti == 65535

for i in range(len(p)):
    if 'Raw' in p[i]:
        if p[i]['Raw'].load[0]==85:
            for j in range(len(p[i]['Raw'].load)):
                if j==8:
                    if ((p[i]['Raw'].load[j]==0 and p[i]['Raw'].load[j+1]==0)or(p[i]['Raw'].load[j]==255 and p[i]['Raw'].load[j+1]==255)):
                        print(i)