Matlab抓取并解析网口数据包

1 Dos命令

        Matlab可以调用Dos命令来抓取网口数据包。

dos(['"D:\Program Files\Wireshark\dumpcap" -B 1 -i 4 -w ' fileName '.cap -c' int2str(capPktNum) ' -f "src host 192.168.1.10 && udp"']);

        其中"D:\Program Files\Wireshark\dumpcap"是调用Wireshark安装目录下的dumpcap工具进行抓包;

        -B 1:设置内核缓冲区大小为1MB;

        -i 4:指定捕获第4号网络接口;第几号网口接口可以通过wireshark上进行观察;

        -w ' fileName '.cap:将捕获结果写入文件,文件名由变量fileName加上.cap扩展名组成;

        -c' int2str(capPktNum) ':捕获指定数量的数据包后停止,数量由变量capPktNum决定;

        -f "src host 192.168.1.10 && udp":捕获过滤器,捕获源IP为192.168.1.10的udp数据包。

2 pcap2matlab解包

        可以采用pcap2matlab开源包对前面使用Dos命令抓取的cap文件进行解析。

       pcap2matlab可以从GitHub上直接下载:

        下载后将pcap2matlab文件夹添加到Matlab的搜索路径。

        最后再将wireshark安装目录下的tshark.exe和所有dll都复制到matlab的bin/win64目录下即可。

        随后便可通过下面的代码对前进抓取的cap文件进行解析,解析到是数据段的报文。如果解析报错,可以看下参考资料链接里博主的方式进行操作;或者降低下wireshark版本,我测试过版本太高也会报错。

filename_or_interface=[fileName,'.cap'];
filter = 'data';
decodeas_and_dissector = {'data.data'};
pcap_result= pcap2matlab(filter, decodeas_and_dissector, filename_or_interface);

参考资料:https://blog.csdn.net/weixin_43675988/article/details/128560579

wireshark各版本下载地址:https://1.as.dl.wireshark.org

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值