Skip to content

Latest commit

 

History

History
15 lines (8 loc) · 979 Bytes

嗅探器.md

File metadata and controls

15 lines (8 loc) · 979 Bytes

网络安全实验报告

全部程序均可在 Windows 下正常运行,部分程序需要加入 -lpthread 参数编译。

代码托管在 https://git.coding.net/rexskz/network_design.git 中。

嗅探器

必须使用管理员权限运行才可以获取到数据。

先定义 IP 包格式、TCP 包格式、UDP 包格式,这样可以直接接收相关类型的变量的二进制信息,无需手动解析数据。

在主程序中先获取本机网卡的信息,然后对于获取到的每个 IP,建立一个线程执行 Sniffer(IP) 函数。然后由于本机网卡信息中没有 127.0.0.1,因此在循环外面添加了对于 127.0.0.1 的 Sniffer。

Sniffer 函数中,先建立 socket,绑定 IP 地址,然后设置为混杂模式,通过这个 socket 接收一个 char 数组,然后直接将其指针类型转换为 IP 包类型的指针,然后将其协议、源 IP、目标 IP、包大小、源端口、目标端口输出。