第二次寒假作业

第二次寒假作业

这个作业属于哪个课程 班级链接
这个作业的要求在哪里 作业要求
这个作业的目标 写匹配的代码
作业正文 github
其他参考文献 1234

这份作业我摆烂了。可能确实是查的资料不够多、题目理解的不够透彻、加之我能力有限,不能提交一份完整的作业,所以只有段破碎的代码凑合着看。千万别有太多期待!

好了 不论如何 形式感还是得有的。说说我的思路吧。

因为数据集和规则集的IP地址表示形式不同,很明显是要设置函数将十进制IP地址转化为点分十进制。

其次就是实现规则匹配了。题意中说

因此我所能想到的就是创造判断源/目的IP、端口号、协议号是否在规则集范围内的函数。

同时还要求以文件形式读入和输出。

好了 开始整活

  • 选择编译环境

    考虑到上个寒假作业让我们学习vscode。 这次本来也想用 vscode来写代码的 ,但是也不知道是哪里出现了问题,我的vscode只能运行比较简单的代码。搞了很久还是不能运行复杂的代码,一怒之下,我选了Dev-c++。语言还是用C语言,我没想到这个寒假这么废,已经懒得去学C++了

  • 读取文件

    这个就完完全全是在网上搜索,刚开始还踩坑了,把打开文件和读取文件弄混,最后是参照了几篇文章,用了fgets 参考1 参考2 参考3

  • 进制转换

    数据包提供的是十进制IP地址,而规则集提供的是点分十进制。首先还是得捋一捋这两者的关系,在我摸索摸索后才有了思路 十进制->二进制->点分十进制

  • 匹配

    个人认为这是这道题最难的部分,也是我最不理解的地方。最初以为判断是否在范围内即可,即比较大小。但是在某些地方没搞明白,比如读取的文件如何把源/目的IP、端口号、协议号分离,还有对于协议的概念还是掌握的不大清楚吧,加之我的搜索方式不大对劲,有些地方实在不知道怎么解决、所以这里就摆烂了。但是还是有参考一些材料的毕竟这是作业嘛,通过谢希仁的《计算机网络》对ip地址有了略略微的了解、还有参考一些博主cidr的内容 让我知道了范围的界定

  • 输出文件

    还是通过网络的帮助 ,用了fputc函数

可能还是因为一开始的态度就不够端正,遇到问题也确实没有积极地解决,加之能力有限。所以说我活该没写出来

posted @ 2022-01-30 22:30  小黄的博客  阅读(43)  评论(1编辑  收藏  举报