global.h

来自「802.1x认证客户端」· C头文件 代码 · 共 116 行

H
116
字号
//ThorClient 802.1x (using WinPcap 3.2 alpha1)
//Download: http://thorqq.ys168.com 
//E-mail:   thorqq@163.com 
//Author:   Thorqq
/////////////////////////////////////////////////////////////

#ifndef _GLOBAL_H
#define _GLOBAL_H

#pragma comment(lib, "wpcap.lib")
//#pragma comment(lib, "Iphlpapi.lib")
#pragma comment(lib, "WS2_32.lib")

#define FILENAME "ThorClient.dat"

#define WM_DOT1X	       WM_USER + 1006//改变认证状态提示

//EAP_HEAD  CODE
#define EAP_REQUEST		0x01
#define EAP_RESPONSE	0x02
#define EAP_SUCCESS		0x03
#define EAP_FAILURE		0x04
#define EAP_OTHER		0x0a
//EAP DATA	TYPE
#define EAP_IDENTIFY		0x01
#define EAP_NOTIFICATION	0x02
#define EAP_MD5				0X04
#define EAP_LOGOUT			0X08
#define EAP_ERROR			0X09
#define EAP_KEEPONLINE		0X14

typedef unsigned char  u_char8;
typedef unsigned char  u_char;
typedef unsigned short u_short16;
typedef unsigned short u_short;

//防止为了字节对齐而在结构体中插入0
#pragma pack(push) // 将当前pack设置压栈保存
#pragma pack(1)// 必须在结构体定义之前使用

typedef struct UserData
{
	char username[50];
	char password[50];
	u_char8 ip[4];
	u_char8 mac[6];
	char nic[60];
	char nicdes[60];

	char morb;		//广播还是多播触发认证
	char dhcp;		//自动获取IP地址
	char updateip;	//上传IP
	char multisend;	//多播发送数据帧
	char relogin;	//断线90s后自动重新连接

	char autologin;	//启动自动连接
	char rempwd;	//记住密码
}USERDATA, *PUSERDATA;

typedef struct Ethhdr
{
	u_char8	DestMAC[6];
	u_char8	SourMAC[6];
	u_short	EthType;
}ETHHDR, *PETHHDR;

typedef struct Pkthdr
{
	u_char8	DestMAC[6];
	u_char8	SourMAC[6];
	u_char8 EthType[2];

	u_char8 Version;
	u_char8	PktType;
	u_short Len1;
	
	u_char8	Code;
	u_char8	Id;
	u_short Len2;

	u_char8 EapType;
}PKTHDR, *PPKTHDR, LOGINFRM, *PLOGINFRM, LOGOUTFRM, *PLOGOUTFRM;

typedef struct VersionFrm
{
	PKTHDR	Hdr;
	u_char8 Version[50];
}VERSIONFRM, *PVERSIONFRM;

typedef struct UsernameFrm
{
	PKTHDR	Hdr;
	u_char8 Unknown[2];
	u_char8 Ip[4];
	u_char8 Username[50];
}USERNAMEFRM, *PUSERNAMEFRM;

typedef struct PasswordFrm
{
	PKTHDR	Hdr;
	u_char8 Unknown[1];
	u_char8 Md5Pwd[16];
	u_char8 Username[50];
}PASSWORDFRM, *PPASSWORDFRM;

typedef struct KeeponlineFrm
{
	PKTHDR	Hdr;
	u_char8 Unknown[3];
	u_char8 Ip[4];
	u_char8 Username[50];
}KEEPONLINEFRM, *PKEEPONLINEFRM;

#pragma pack(pop) // 恢复先前的pack设置

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?