第二次寒假作业
第二次寒假作业
这份作业我摆烂了。可能确实是查的资料不够多、题目理解的不够透彻、加之我能力有限,不能提交一份完整的作业,所以只有段破碎的代码凑合着看。千万别有太多期待!
好了 不论如何 形式感还是得有的。说说我的思路吧。
因为数据集和规则集的IP地址表示形式不同,很明显是要设置函数将十进制IP地址转化为点分十进制。
其次就是实现规则匹配了。题意中说
因此我所能想到的就是创造判断源/目的IP、端口号、协议号是否在规则集范围内的函数。
同时还要求以文件形式读入和输出。
好了 开始整活
-
选择编译环境
考虑到上个寒假作业让我们学习vscode。 这次本来也想用 vscode来写代码的 ,但是也不知道是哪里出现了问题,我的vscode只能运行比较简单的代码。搞了很久还是不能运行复杂的代码,一怒之下,我选了Dev-c++。语言还是用C语言,
我没想到这个寒假这么废,已经懒得去学C++了。 -
读取文件
这个就完完全全是在网上搜索,刚开始还踩坑了,把打开文件和读取文件弄混,最后是参照了几篇文章,用了fgets 参考1 参考2 参考3
-
进制转换
数据包提供的是十进制IP地址,而规则集提供的是点分十进制。首先还是得捋一捋这两者的关系,在我摸索摸索后才有了思路 十进制->二进制->点分十进制
-
匹配
个人认为这是这道题最难的部分,也是我最不理解的地方。最初以为判断是否在范围内即可,即比较大小。但是在某些地方没搞明白,比如读取的文件如何把源/目的IP、端口号、协议号分离,还有对于协议的概念还是掌握的不大清楚吧,加之我的搜索方式不大对劲,有些地方实在不知道怎么解决、
所以这里就摆烂了。但是还是有参考一些材料的毕竟这是作业嘛,通过谢希仁的《计算机网络》对ip地址有了略略微的了解、还有参考一些博主cidr的内容 让我知道了范围的界定 -
输出文件
还是通过网络的帮助 ,用了fputc函数
可能还是因为一开始的态度就不够端正,遇到问题也确实没有积极地解决,加之能力有限。所以说我活该没写出来。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?