在做以太網相關工作,抓包器抓來了一大堆東西,用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
例: