⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendpacket.c

📁 linux 802.1x 源码,兼容锐捷客户端 代码简洁小巧
💻 C
字号:
#include "sendpacket.h"//datas//经管/*unsigned char start_packet[0x40]="\x01\x80\xc2\x00\x00\x03\x00\x09\x6b\xc2\x74\x62\x88\x8e\x01\x01"				 							"\x00\x2a\x20\x14\x01\x00\x04\x04\x00\x01\x0d\x22\xe3\x2f\x1c\x45"											"\x12\x03\xba\x33\xd5\x77\x3c\x28\x13\x64\xde\x3f\xad\x57\xcb\x61"				 							"\xcb\xde\x44\xad\xe9\xb3\x30\x32\x37\x3b\x69\xc8\xa5\xa5\xa5\xa5";*///信息,北校区西10#testunsigned char start_packet[0x40]="\x01\x80\xc2\x00\x00\x03\x00\x11\x5b\x9e\xf3\x41\x88\x8e\x01\x01"											"\x00\x2a\x20\x14\x01\x00\x04\x04\x00\x01\x0d\x22\x91\x01\xe9\x27"											"\x27\x6f\x0c\x5e\x32\x29\x2c\x0f\x2e\x1a\xc9\x48\xa9\x7d\x07\x4e"											"\x54\xb2\x73\x19\xf6\xcc\xd4\xbb\xda\x50\x4e\xb5\xa5\xa5\xa5\xa5";											unsigned char name_packet[0x40]= "\x01\x80\xc2\x00\x00\x03\x00\x11\x5b\x9e\xf3\x41\x88\x8e\x01\x00"											"\x00\x10\x02\x01\x00\x10\x01\x57\x46\x5a\xa5\xa5\xa5\xa5\xa5\xa5"												"\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5"												"\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5";											unsigned char password_packet[0x40]="\x01\x80\xc2\x00\x00\x03\x00\x11\x5b\x9e\xf3\x41\x88\x8e\x01\x00"											"\x00\x21\x02\x02\x00\x21\x04\x10\x06\x9b\x40\xd2\x56\xf2\x67\xae"											"\x2e\x86\xc0\x73\xa4\xef\x13\xbf\x57\x46\x5a\x30\x35\x32\x32\x33"											"\x32\x33\x32\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5";											unsigned char echo_packet[0x40]= "\x01\x80\xc2\x00\x00\x03\x00\x11\x5b\x9e\xf3\x41\x88\x8e\x01\x0b"											"\x00\x00\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5"											"\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5"											"\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5";											unsigned char notify_packet[0x40]="\x01\x80\xc2\x00\x00\x03\x00\x11\x5b\x9e\xf3\x41\x88\x8e\x01\x0d"											"\x00\x1c\x20\x14\x01\x01\x14\x06\xdb\xf5\xd6\x91\x10\x06\xff\xff"											"\xff\x00\x0f\x06\xdb\xf5\xd6\x01\x11\x06\xdb\xf5\xc0\x0a\xa5\xa5"											"\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5";   																						unsigned char logoff_packet[0x40]="\x01\x80\xc2\x00\x00\x03\x00\x11\x5b\x9e\xf3\x41\x88\x8e\x01\x02"												"\x00\x00\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5"											"\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5"											"\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5\xa5";																															void initAllPackets(char localMAC[6],char serverMAC[6]){/*	unsigned char r[32];	int i = 0;	time_t t;	srandom(time(&t));	//生成32字节随机数	for(i = 0;i < 32;i++)		r[i] = random()%253+1;	memcpy(start_packet+0x1c,r,32);*/		memcpy(start_packet,serverMAC,6);	memcpy(start_packet+0x06,localMAC,6);		memcpy(name_packet,serverMAC,6);	memcpy(name_packet+0x06,localMAC,6);		memcpy(password_packet,serverMAC,6);	memcpy(password_packet+0x06,localMAC,6);		memcpy(echo_packet,serverMAC,6);	memcpy(echo_packet+0x06,localMAC,6);		memcpy(logoff_packet,serverMAC,6);	memcpy(logoff_packet+0x06,localMAC,6);		memcpy(notify_packet,serverMAC,6);	memcpy(notify_packet+0x06,localMAC,6);}											void printPacket(unsigned char packet[0x40]){	int i = 0;	for(i = 0;i < 0x40; i++)		printf("%02x",packet[i]);	printf("\n");}void modifyNotify(char localIP[4],char netMask[4],char gateway[4],char dhcpserver[4]){	memcpy(notify_packet+0x18,localIP,4);	memcpy(notify_packet+0x1e,netMask,4);	memcpy(notify_packet+0x24,gateway,4);	memcpy(notify_packet+0x2A,dhcpserver,4);}void modifyName(char name[],int namelen){	name_packet[0x11] = (unsigned char)namelen+5;	name_packet[0x15] = name_packet[0x11];	memcpy(name_packet+0x17,name,namelen);		password_packet[0x11] = (unsigned char)namelen+22;	password_packet[0x15] = password_packet[0x11];	memcpy(password_packet+0x28,name,namelen);}void modifyPassword(char password[16]){	//printf("更新口令密文\n");	memcpy(password_packet+0x18,password,16);}													//sendpacketsint sendStartPacket(libnet_t* l){	//fputs("send start packet\n",stdout);	//printPacket(start_packet);	return (libnet_write_link(l,start_packet,0x40)==0x40)?0:-1;}int sendNamePacket(libnet_t* l,unsigned char id){	//printf("send username with id = %x\n",id);	name_packet[0x13] = id;	//printPacket(name_packet);	return (libnet_write_link(l,name_packet,0x40)==0x40)?0:-1;}int sendPasswordPacket(libnet_t* l,unsigned char id){	//printf("send password with id = %x\n",id);	password_packet[0x13] = id;	//printPacket(password_packet);	return (libnet_write_link(l,password_packet,0x40)==0x40)?0:-1;}int sendLogoffPacket(libnet_t* l){	return (libnet_write_link(l,logoff_packet,0x40)==0x40)?0:-1;}int sendSessionEchoPacket(libnet_t* l){	fputs("send an echo packet\n",stdout);	//printPacket(echo_packet);	return (libnet_write_link(l,echo_packet,0x40)==0x40)?0:-1;}int sendNotifyPacket(libnet_t* l){	//fputs("send an notify packet\n",stdout);	//printPacket(notify_packet);	return (libnet_write_link(l,notify_packet,0x40)==0x40)?0:-1;}void printPasswordPacket(){	printPacket(password_packet);}

⌨️ 快捷键说明

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