数据整理——剔除数据包中的指定位置的数据

在做以太网相关工作,抓包器抓来了一大堆东西,用MATLAB写了个小程序,剔除无效数据。记录分享一下。

适用与数据包的格式固定:包中有效数据长度、位置固定,包中无效数据长度、位置固定。

大多数通信协议都符合这个条件,比如以太网协议中的UDP/IP协议:除了蓝色框内的数据以外,全是报头,要剔除。

clc;
clear all;

len_invalid = 2;%无效数据的长度
len_valid = 3;%有效数据的长度
len_packet = len_valid + len_invalid;%数据包总长度
count = 3;%数据包数目

data = textread('test.txt')';
[hang , lie] = size(data);
data = reshape(data,1,hang * lie);
z = [1:len_invalid];
for i = 1 : count - 1
    j = [1+i*len_packet : len_invalid+i*len_packet];
    z = [z,j];
end

data(z) = [];
data

例:

猜你喜欢

转载自blog.csdn.net/u012824853/article/details/81044697