寒假作业2汇总
第二次作业
1.代码:我的Github仓库
2.需要学习哪些内容
- 复习git操作
- C语言文件知识
- IP地址,进制转换,CIDR
- 计算机网络知识:五元组,规则集,数据集,规则匹配
3.困难
几乎没了解过计算机网络知识,看了很多遍作业内容才勉强理解一点意思,对作业感到无从下手。
本来想先学c++再做作业,后来感觉还是用c写方便一些。
在写代码的时候,每写一小部分就要运行一下试试,找找错误,规则集里端口的冒号两边有空格,没注意到且没有运行试试,到后面运行协议部分时出错才发现之前有问题。
在转换成二进制时,一开始想直接转换成一个二进制数,没把二进制以八位为一组分开,导致运行时溢出,才意识到问题并作修改。
4.步骤
(一)读取文件
用git把数据集和规则集弄到本地库,定义三个文件指针,用c读取文件,先分别用2个结构体存起来(源、目端口,源、目IP,协议)
数据集的IP十进制转成二进制,规则集的CIDR转成二进制的最小地址和最大地址,再存到结构体
(二)数据包匹配
暴力求解
(三)输出文件
结果写在另一文件res.txt
格式为 数据序号 : 匹配规则位置,如下图,以第一个规则集和第一个数据包为例
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?