【2017网络协议编程与分析课程设计】(一)开始写程序之前的一些准备
来源:互联网 发布:bim软件免费下载 编辑:程序博客网 时间:2024/05/29 19:03
首先,这一次课设主要要做的事情:分析IP数据包!!!分析IP数据包!!!分析IP数据包!!!
IP数据包是一个大的概念,根据传输方式不同,有面向连接的TCP和面向无连接UDP。而基于这2种传输方式的IP数据包又用了不同的协议。
具体见TCP/IP协议族的层次结构
在做之前需要一些准备
1.准备VS中运行winpcap 的环境,百度一下网上有很多。关键词:winpcap+vs,神秘连接:点击打开链接
2.先了解这个结构体,IP首部,后面要做的事情需要围绕这个结构体展开。
struct IP_HEAD{
unsigned char ver_and_hlen;//版本号+首部长度共1个字节
unsigned char tos;//服务类型1个字节
unsigned short total_len;//总长度2个字节
unsigned short code;//标识2个字节
unsigned short flag;//标志+片偏移共2个字节
unsigned char ttl;//生存时间 1个字节
unsigned char protl;//上层协议标识1个字节
unsigned short check_sum;//首部校验和2个字节
unsigned char src_ip[4];//源IP地址4个字节
unsigned char des_ip[4];//目的IP地址4个字节
};
3.用vs写一个小程序,获取设备列表,并显示出来。测试自己的VS环境能不能正常使用winpcap编程。
4.鉴于我在网上看过很多博客写的真是对像我这样入门级别的人来说十分不友好,我决定把这个过程截图拿出来供大家参考。
5.用VS新建一个MFC的应用程序
6.选择基于对话框,之后完成。
7.画出一个界面,画之前先用delete键删除界面的全部控件,我的static控件变成这种样式是因为我设置了他的属性,如后面一张图
8.双击button按钮编写button的click事件,不过在编写之前需要添加头文件#include"pcap.h",这样就能使用wpcap里面的一些函数了。
9.下面开始正式写函数
CString Msg;void C课程设计Dlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码CString Msg;pcap_if_t *alldevs;pcap_if_t *d;char errbuf[PCAP_ERRBUF_SIZE];int i = 0;//获取本地的设备列表if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1){Msg = "获取设备列表失败!";SetDlgItemText(IDC_STATIC, Msg);exit(-1);}/* Print the list */for (d = alldevs; d != NULL; d = d->next){Msg +=d->name;Msg += "\r\n";++i;}if (i == 0){Msg = "\nNo interfaces found! Make sure WinPcap is installed.\n";}/* We don't need any more the device list. Free it */pcap_freealldevs(alldevs);SetDlgItemText(IDC_STATIC, Msg);}
10.对于完全不了解上面代码的的可以看一下这个链接 点击打开链接
11.我的结果图
12.这个写的也不算很详细,有很多东西没有解释,如果看到这个博客的人对这个篇博客有什么想法或者建议,尽管提,以后多改正。后面更新。。。。
- 【2017网络协议编程与分析课程设计】(一)开始写程序之前的一些准备
- 写一个java的网络数据包分析程序(一)
- 开始写网络编程
- 写代码之前要做的准备
- IOS编程浅蓝教程(一)先决条件:开始iOS编程的必要准备
- STL源码分析(1) -- STL介绍和源码分析之前的一些准备
- Python网络编程的一些代码片断与分析
- Python网络编程的一些代码片断与分析
- 准备开始写博客~~记录一些事情,一些想法,一些...
- 为写“QQ“做准备------(1)网络编程
- 准备写一些与数据结构,算法有关的东西
- Linux网络编程---ICMP协议分析及ping程序实现
- linux网络编程之TCP/IP基础(五):分析一帧基于UDP的TFTP协议帧
- linux网络编程之TCP/IP基础(五):分析一帧基于UDP的TFTP协议帧
- linux网络编程之TCP/IP基础(五):分析一帧基于UDP的TFTP协议帧
- linux网络编程之TCP/IP基础(五):分析一帧基于UDP的TFTP协议帧
- 开始写程序的时候做好一些装备工作
- 设计模式 之 准备开始之前(转载23种经典的jdk中设计模式)
- c++29、断言和静态断言
- FRANK MULLER 有声书
- MongoDB和Redis的区别
- iOS10新特性之UIRefreshControl的使用
- Nginx转发地址解决跨域问题
- 【2017网络协议编程与分析课程设计】(一)开始写程序之前的一些准备
- Spring事务隔离级别和传播行为
- C++第一次上机项目1
- Cmake--Error in configuration process, project files maybe invalid
- PoiUtil.java 用于excel间sheet复制
- Jquery选择器集锦
- nagios 监控goldengate
- 通过注解的方式找到控件
- Swift3.0 -- 设置设备方向支持