亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? icmp.c

?? 在S3C2440上運行的"電子日歷“(支持平年,閏年,星期自動調整). 開發環境是RVDS2.2
?? C
字號:
/**---------------------版權 (c)----------------------------------------------------------***
***                     作者:顏章健                                                      ***
***                     郵件:jenkinyan@163.com                                           ***
***                                                                                       ***
***---------------------File Info---------------------------------------------------------***
*** 創 建 人:			顏章健															  ***
*** 創建日期:			2008-03-16														  ***
*** 創建版本:																			  ***
*** 文件描述:						                         							  ***
***---------------------------------------------------------------------------------------***
*** 修 訂 人:																			  ***
*** 修訂日期:																			  ***
*** 修訂版本:					      													  ***
*** 修訂描述																			  ***
***---------------------------------------------------------------------------------------**/
#include "config.h"


#define		ICMPS_TIMEOUT		1
#define		ICMPS_ACK			2
#define		ICMPS_REQ			3

static	int		TimerHandler;
static	uint8	IcmpStatus;
static	uint32	RequestTime;
static	uint8	IcmpRequestPacket[12];
NET_PKT	IcmpReqPacket;
static	union	{uint16 w; uint8 b[2];}IcmpReqId;
static	union	{uint16 w; uint8 b[2];}IcmpCrc;


/********************************************************************************************
*** 函數名稱:	IcmpEchoReqTimeOut		
*** 函數描述:	ping 命令請求超時服務,用于注入定時器定時后觸發		
*** 入    口:	無	
*** 出    口:	無		
********************************************************************************************/
static	void	IcmpEchoReqTimeOut(void)
{
	if(IcmpStatus != ICMPS_ACK)
	{
		IcmpStatus = ICMPS_TIMEOUT;
		_printf("Request timed out\r\n");
	}
}

/********************************************************************************************
*** 函數名稱:	IcmpEchoRequest		
*** 函數描述:	ping 命令請求		
*** 入    口:	ip 目的IP地址	
*** 出    口:	無		
********************************************************************************************/
void	IcmpEchoRequest(uint8 *ip)
{
	char 	IcmpStr[100];
	sprintf(IcmpStr,"Pinging %d.%d.%d.%d whith 4 bytes of data:\r\n",ip[0],ip[1],ip[2],ip[3]);
	_printf(IcmpStr);

	IcmpReqId.w++;
	IcmpReqPacket.Data   = IcmpRequestPacket;
	IcmpReqPacket.Length = 12;
	IcmpReqPacket.Next   = NULL;

	IcmpRequestPacket[0] = ICMPF_ECHOREQ;
	IcmpRequestPacket[1] = 0x00;
	IcmpRequestPacket[2] = 0x00;
	IcmpRequestPacket[3] = 0x00;
	IcmpRequestPacket[4] = IcmpReqId.b[1];
	IcmpRequestPacket[5] = IcmpReqId.b[0];
	
	IcmpCrc.w = 0xffff - InetCheckSum(IcmpRequestPacket,12);
	IcmpRequestPacket[2] = IcmpCrc.b[0];
	IcmpRequestPacket[3] = IcmpCrc.b[1];
	
	NetLayer.SendPacket(IPF_ICMP,ip,&IcmpReqPacket);
	RequestTime = NetTimerGetTc();			
	TimerHandler = NetTimerHookRegist(3000,IcmpEchoReqTimeOut);
	IcmpStatus = ICMPS_REQ;	
}

/********************************************************************************************
*** 函數名稱:	IcmpMaskRequest		
*** 函數描述:	請求子網掩碼		
*** 入    口:	無		
*** 出    口:	無		
********************************************************************************************/
void	IcmpMaskRequest(void)
{
	uint8	ip[4] = {0xff,0xff,0xff,0xff};
	IcmpReqId.w++;
	IcmpReqPacket.Data   = IcmpRequestPacket;
	IcmpReqPacket.Length = 12;
	IcmpReqPacket.Next   = NULL;

	IcmpRequestPacket[0] = ICMPF_MASKREQ;
	IcmpRequestPacket[1] = 0x00;
	IcmpRequestPacket[2] = 0x00;
	IcmpRequestPacket[3] = 0x00;
	IcmpRequestPacket[4] = IcmpReqId.b[1];
	IcmpRequestPacket[5] = IcmpReqId.b[0];
	
	IcmpCrc.w = 0xffff - InetCheckSum(IcmpRequestPacket,12);
	IcmpRequestPacket[2] = IcmpCrc.b[0];
	IcmpRequestPacket[3] = IcmpCrc.b[1];
	
	NetLayer.SendPacket(IPF_ICMP,ip,&IcmpReqPacket);
}

/********************************************************************************************
*** 函數名稱:	IcmpEchoReqProcess		
*** 函數描述:	ping 請求處理:返回應答包		
*** 入    口:	無		
*** 出    口:	無		
********************************************************************************************/
void	IcmpEchoAck(void)
{
	char 	IcmpStr[100];
	union {uint16 w; uint8 b[2];}crc;
	NET_PKT	AckIpPacket;
	uint8	*p;
	uint8	i;
	uint8	IpHeadLen;
	
	AckIpPacket.Data   = NetLayer.Rxd;
	AckIpPacket.Length = NetLayer.Rxl;
	AckIpPacket.Next   = NULL;
	
	IpHeadLen = (NetLayer.Rxd[0] & 0x0f) << 2;
	
	
	sprintf(IcmpStr,"Ping請求,IP頭部長=%d\r\n",	IpHeadLen);
	_printf(IcmpStr);
	
	
	// 設置源和目的IP
	for(i=0; i<4; i++)
	{
		NetLayer.Rxd[i+16] = NetLayer.Rxd[i+12];
		NetLayer.Rxd[i+12] = LinkLayer.Config.Ip[i];	
	}
	
	// TTL減1
	NetLayer.Rxd[8] = NetLayer.Rxd[8] - 1;
	
	// 清零IP包頭部校驗值
	NetLayer.Rxd[10] = 0;
	NetLayer.Rxd[11] = 0;
	
	// 計算并填充IP頭部校驗值
	crc.w = 0xffff - InetCheckSum(AckIpPacket.Data,IpHeadLen);
	NetLayer.Rxd[10] = crc.b[0];
	NetLayer.Rxd[11] = crc.b[1];
	
	
	// 設置ICPM類型、代碼,清空校驗字段	
	p = NetLayer.Rxd + IpHeadLen;
	p[0] = ICMPF_ECHOACK;		// 類型
	p[1] = 0x00;				// 代碼
	p[2] = 0x00;				// CRC清零
	p[3] = 0x00;				// CRC清零	
	
	// 計算并填充ICMP頭部校驗值
	crc.w = 0xffff - InetCheckSum(p,(NetLayer.Rxl - IpHeadLen));
	p[2] = crc.b[0];
	p[3] = crc.b[1];
	
	LinkLayer.PutFrame(PPPF_IP,&AckIpPacket);
}


/********************************************************************************************
*** 函數名稱:	IcmpEchoAckDisplay		
*** 函數描述:	ping 應答顯示		
*** 入    口:	無		
*** 出    口:	無		
********************************************************************************************/
void	IcmpEchoAckDisplay(void)
{
	char 	IcmpStr[100];
	uint8	*ip;
	uint16	bytes;
	uint8	TTL;	
	uint32	TC;
	
	NetTimerHookDelete(TimerHandler);
	IcmpStatus = ICMPS_ACK;
	TC = NetTimerGetTc();
	if(TC < RequestTime)
	{
		RequestTime = 300000 - RequestTime + TC;		
	}
	else
	{
		RequestTime = TC - RequestTime;
	}

	bytes = *(NetLayer.Rxd + 2);
	bytes <<= 8;
	bytes |= ((*(NetLayer.Rxd + 3)) & 0xff);

	TTL = ((*NetLayer.Rxd) & 0x0f) << 2;
	bytes = bytes - TTL - 8;
		
	TTL = *(NetLayer.Rxd + 8);

	ip = NetLayer.Rxd + 12;	
	sprintf(IcmpStr,"Reply form %d.%d.%d.%d: bytes=%d time=%dms TTL=%d \r\n",
			ip[0],ip[1],ip[2],ip[3],bytes,RequestTime,TTL);
	_printf(IcmpStr);

}


/********************************************************************************************
*** 函數名稱:	IcmpMaskAckProcess		
*** 函數描述:	子網掩碼應答處理:保存子網掩碼		
*** 入    口:	無		
*** 出    口:	無		
********************************************************************************************/
void	IcmpMaskAckProcess(void)
{
	char 	IcmpStr[100];
	uint8	*p;
	uint8	i;
	
	i = ((*NetLayer.Rxd) & 0x0f) << 2;
	p = NetLayer.Rxd + i + 8;
	
	
	sprintf(IcmpStr,"獲取到子網掩碼 %d.%d.%d.%d \r\n",p[0],p[1],p[2],p[3]);
	_printf(IcmpStr);
	for(i=0; i<4; i++)
	{
		LinkLayer.Config.Mask[i] = *p++;
	}
	
	LinkLayer.Config.Mask[4] = 1;
}


/********************************************************************************************
*** 函數名稱:	IcmpProcess		
*** 函數描述:	ICMP 協議主程序		
*** 入    口:	無		
*** 出    口:	無		
********************************************************************************************/
void	IcmpProcess(void)
{
	uint8	dat;

	_printf("ICMP packet:\r\n");
	dat = *(NetLayer.Rxd + 20);	
	switch(dat)
	{
		case	ICMPF_ECHOREQ:
			if(InetMemCmp(NetLayer.Rxd+16,LinkLayer.Config.Ip,4))
			{
				IcmpEchoAck();
			}
			break;
			
		case	ICMPF_ECHOACK:
			if(InetMemCmp(NetLayer.Rxd+16,LinkLayer.Config.Ip,4))
			{
				IcmpEchoAckDisplay();
			}
			break;
		
		case	ICMPF_MASKACK:
			if(InetMemCmp(NetLayer.Rxd+16,LinkLayer.Config.Ip,4))
			{
				IcmpMaskAckProcess();
			}			
			break;
		
		default:
			break;	
	}
}


/********************************************************************************************
*** 					文件結束														  ***	
********************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲最大成人综合| 亚洲精品在线三区| 91精品国产综合久久久蜜臀粉嫩| 91精品久久久久久蜜臀| 久久这里只有精品首页| 亚洲综合另类小说| 国产suv精品一区二区三区| 欧美猛男超大videosgay| 精品久久国产97色综合| 亚洲国产精品一区二区www| 国产福利一区二区三区在线视频| 欧美性感一类影片在线播放| 国产欧美日韩一区二区三区在线观看 | 成人av在线影院| 日韩欧美一级特黄在线播放| 亚洲男人的天堂一区二区| 美脚の诱脚舐め脚责91| 欧美日韩亚洲综合| 亚洲天堂成人网| 岛国av在线一区| 精品国产乱子伦一区| 日韩精品欧美成人高清一区二区| 91在线视频播放| 国产精品人成在线观看免费| 韩国理伦片一区二区三区在线播放| 欧美日韩国产一级二级| 亚洲综合自拍偷拍| 91香蕉视频mp4| 一区视频在线播放| 成人听书哪个软件好| 国产亚洲一区二区三区| 黄色日韩网站视频| 精品国产乱码久久久久久浪潮 | 91麻豆精品一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 日产国产欧美视频一区精品| 欧美午夜不卡在线观看免费| 亚洲最新在线观看| 欧美制服丝袜第一页| 亚洲国产va精品久久久不卡综合| 91成人免费网站| 偷拍一区二区三区四区| 欧美精品第1页| 美国毛片一区二区三区| 欧美大片日本大片免费观看| 三级久久三级久久| 欧美成人官网二区| 国产福利91精品一区| 国产欧美日韩亚州综合| 成人va在线观看| 一区二区久久久久| 777亚洲妇女| 精品无人码麻豆乱码1区2区 | 国产欧美综合色| 成人福利电影精品一区二区在线观看 | 美洲天堂一区二卡三卡四卡视频| 日韩午夜中文字幕| 国产精品一区二区三区四区| 中文字幕乱码久久午夜不卡| 99久久99久久精品免费观看 | 日韩免费电影一区| 国产精品99久| 一区二区三区不卡视频| 日韩午夜中文字幕| 99久久精品免费观看| 亚洲国产精品影院| 国产亚洲人成网站| 欧美日韩国产三级| 黄网站免费久久| 亚洲一区二区黄色| 久久噜噜亚洲综合| 欧美亚洲综合久久| 国产福利不卡视频| 午夜久久久久久| 国产精品婷婷午夜在线观看| 欧美色图在线观看| 国产一区二区成人久久免费影院 | 91精品国产一区二区三区| 国产一区二区看久久| 亚洲激情在线播放| 久久青草欧美一区二区三区| 色屁屁一区二区| 国产成人精品免费网站| 舔着乳尖日韩一区| 自拍偷拍欧美精品| 欧美激情综合五月色丁香| 欧美日韩成人一区二区| 欧美写真视频网站| 国产v综合v亚洲欧| 久久激五月天综合精品| 亚洲精品成人少妇| 国产偷国产偷精品高清尤物| 欧美久久久久久久久| 一本色道综合亚洲| 高清国产午夜精品久久久久久| 日本不卡一二三| 一区二区三区四区亚洲| 中文字幕乱码一区二区免费| 日韩精品在线网站| 欧美一区二区三区视频免费| 在线影院国内精品| 91在线观看成人| 成人免费观看av| 岛国精品在线观看| 成人综合婷婷国产精品久久| 国产一区不卡精品| 狠狠v欧美v日韩v亚洲ⅴ| 青青草国产成人av片免费| 亚洲一区在线观看免费观看电影高清| 欧美激情一区二区| 国产丝袜美腿一区二区三区| 精品国产91乱码一区二区三区 | 91麻豆精品国产91久久久资源速度 | 精品日韩一区二区三区免费视频| 欧美影视一区在线| 色综合久久久网| 色哟哟精品一区| 欧美伊人久久大香线蕉综合69| 色域天天综合网| 色婷婷精品久久二区二区蜜臂av| 99久久婷婷国产综合精品电影| 不卡一区二区中文字幕| 成年人网站91| 色婷婷国产精品| 欧美亚洲日本一区| 欧美日韩免费观看一区三区| 欧美日韩精品久久久| 欧美日韩电影在线| 日韩一级免费观看| 亚洲综合久久av| 午夜av一区二区三区| 日日夜夜免费精品| 狠狠色狠狠色综合系列| 成人性生交大合| 在线免费观看日本一区| 欧美精品v日韩精品v韩国精品v| 91精品国产一区二区三区香蕉| 精品国产精品一区二区夜夜嗨| 国产网站一区二区| 亚洲视频在线一区| 日韩电影在线观看网站| 国产黄人亚洲片| 色综合色综合色综合| 欧美视频在线一区二区三区| 欧美一级日韩免费不卡| 久久久久久久久久久99999| 国产精品午夜春色av| 一区二区国产盗摄色噜噜| 丝袜a∨在线一区二区三区不卡| 久久国产精品99精品国产| 国产黄色91视频| 欧美三级日本三级少妇99| 日韩三级视频中文字幕| 国产精品三级视频| 日韩av中文字幕一区二区三区| 国产成人综合在线| 色乱码一区二区三区88| 欧美不卡视频一区| 亚洲品质自拍视频| 国内精品伊人久久久久影院对白| a美女胸又www黄视频久久| 欧美日韩一二三| 国产精品美女久久福利网站 | 国产精品久久久久一区| 天天综合色天天综合| 粉嫩av一区二区三区粉嫩 | 波多野结衣中文一区| 91精品国产综合久久蜜臀| 国产欧美精品一区二区色综合| 亚洲国产成人91porn| 国产91露脸合集magnet| 91精品在线麻豆| 亚洲男人的天堂在线aⅴ视频| 激情成人综合网| 在线播放视频一区| 亚洲欧美一区二区三区久本道91 | 久久综合av免费| 首页亚洲欧美制服丝腿| 成人高清视频在线| 亚洲精品一区二区三区香蕉| 一区二区三区不卡视频| www.亚洲激情.com| 久久久久国色av免费看影院| www.日韩在线| 欧美激情在线一区二区三区| 久久99深爱久久99精品| 欧美精品一二三区| 亚洲午夜激情av| 在线观看视频一区二区| 亚洲特级片在线| 粗大黑人巨茎大战欧美成人| 久久精品一区二区三区不卡牛牛 | 久久久精品免费免费| 欧美aaaaaa午夜精品| 精品1区2区3区| 亚洲资源中文字幕| 91国产成人在线| 一区二区视频免费在线观看| 99久久综合99久久综合网站| 中文字幕在线免费不卡|