📄 ip.c
字号:
//**********************************
//*版本: Test 1.0
//*作者: XUGUOHONG
//*E-MAIL: KK20Y@YAHOO.COM.CN
//*WEBSITE:microdesign.000webhost.com
//**********************************
#include <rtl8019as.h>
#include <ip.h>
//**********************************
//* 系统 MAC地址设定(根据需要修正)
//**********************************
extern unsigned char SYSMAC[6];
//**********************************
//* 系统 IP地址设定(根据需要修正)
//**********************************
extern unsigned char SYSIP[4];
void ip(void);
unsigned int ip_cal_csum(void);
//************************************
// IP数据包分析
// 根据类型数值,执行不同的操作
// 1.icmp
// 2.tcp
// 3.udp
//************************************
void ip(void)
{
unsigned char temp;
temp=read_62256(IP_PRO_TYP); //读取IP数据包类型
if ( temp==0x01 )
{
icmp();
}
else if ( temp==0x06)
{
tcp();
}
else if ( temp==0x11)
{
udp();
}
else ;
}
//************************************
// IP数据包头CHECKSUM
//************************************
unsigned int ip_cal_csum(void)
{
unsigned char i;
unsigned long datah=0x00000000;
unsigned int data=0x0000;
for(i=0;i<20;i=i+2)
{
data=read_62256(IP_VER_LEN+i); // 高位数值xxxxabcd
datah= datah+(data<<8); // 形成数值xxxxabcdxxxx
datah=datah+read_62256(IP_VER_LEN+1+i); // 形成数值xxxxabcdefgh
}
data=datah+(datah>>16);
data=0XFFFF-data;
return data;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -