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

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

?? arp.c

?? 基于AVRVi Ethernet的IO測試代碼
?? C
字號:
/*==============================================*/
//	ARP協(xié)議程序
//	FOR ARM DEV 1.0
//	版本:		1.0
//	作者:		HAN		3366524@QQ.COM
//	日期:		2005年1月5日
//	test ok, 2005/1/8
/*==============================================*/

#include	"j60.h"


extern union netcard rxdnetbuf;
extern union netcard txdnetbuf;
extern union NetNode myNode;

union arp_table_type arp_tab[MaxLenARPtable];
static unsigned char	arpindex = 0;			//ARP table 循環(huán)加入點

/*==============================================*/
//	函數(shù)名稱:	arp動態(tài)緩沖區(qū)初始化
/*==============================================*/
void arptab_init(void)
{
	unsigned char	i,j;
	for(i = 0; i < MaxLenARPtable; i++)
	{
		for(j = 0; j < 12; j++)
		{
			arp_tab[i].bytes[j] = 0;
		}
	}
}

/*==============================================*/
//	函數(shù)名稱:	arp請求
/*==============================================*/
void arp_request(union ip_address_type *ip_address)
{
	unsigned char	i;
	union ethernet_address_type castaddress;

	for(i = 0; i < 6; i++)
	{
		castaddress.bytes[i] = 0xFF;
		txdnetbuf.arpframe.sourcenodeid[i] = myNode.node.mac[i];
	}

	for(i = 0; i < 4; i++)
	{
		txdnetbuf.arpframe.sourceip[i] = myNode.nodebytes.ipbytes[i];
		txdnetbuf.arpframe.destip[i] = ip_address->bytes[i];
	}
	txdnetbuf.arpframe.harewaretype=0x0100;
	txdnetbuf.arpframe.protocaltype=0x0008;
	txdnetbuf.arpframe.halength=0x06;
	txdnetbuf.arpframe.palength=0x04;
 	txdnetbuf.arpframe.operation=0x0100;//應答代碼
 	for(i=46;i<64;i++)
		txdnetbuf.bytedata.bytebuf[i]=0x00;
	encPacketSend(&castaddress,&txdnetbuf,60,ARP_PACKET);
}

/*==============================================*/
//	函數(shù)名稱:	arp應答
/*==============================================*/
void arp_answer(void)
{
	unsigned char	i;
	union ethernet_address_type answeraddress;

	if( (rxdnetbuf.arpframe.destip[0] == myNode.nodebytes.ipbytes[0])
		&& (rxdnetbuf.arpframe.destip[1] == myNode.nodebytes.ipbytes[1])
		&& (rxdnetbuf.arpframe.destip[2] == myNode.nodebytes.ipbytes[2])
		&& (rxdnetbuf.arpframe.destip[3] == myNode.nodebytes.ipbytes[3]))
	{								//表示是向我這個ip地址的請求
	    	for(i = 16; i < 64; i++)
		{							//復制arp到發(fā)送緩沖區(qū)
	    		txdnetbuf.bytedata.bytebuf[i]=rxdnetbuf.bytedata.bytebuf[i];
	    	}
	    	for(i = 0; i < 6; i++)
		{							//復制對方網(wǎng)卡地址或網(wǎng)關地址   
			answeraddress.bytes[i]=rxdnetbuf.etherframe.sourcenodeid[i];
			txdnetbuf.arpframe.sourcenodeid[i]=myNode.node.mac[i];
			txdnetbuf.arpframe.destnodeid[i]=rxdnetbuf.arpframe.sourcenodeid[i];
	    	}
		for(i = 0; i < 4; i++)
		{
			txdnetbuf.arpframe.destip[i]=rxdnetbuf.arpframe.sourceip[i];
			txdnetbuf.arpframe.sourceip[i]=rxdnetbuf.arpframe.destip[i];
		}
		txdnetbuf.arpframe.operation=0x0200;//響應代碼
		//Lib_Uart_SendString("arp answer tx\n");
		encPacketSend(&answeraddress,&txdnetbuf,60,ARP_PACKET);
	}
	else
	{
	 	//	Lib_Uart_SendString("arp request ip error\n");
	}
}

/*==============================================*/
//	函數(shù)名稱:	arp應答處理
/*==============================================*/
void arp_process(void)
{	
	unsigned char	i,j;

	for(i = 0; i < MaxLenARPtable; i++)
	{
		if(arp_tab[i].arp.status == 1)
		{
			if((arp_tab[i].arp.ip_address.bytes[0] == rxdnetbuf.arpframe.sourceip[0])
				&& (arp_tab[i].arp.ip_address.bytes[1] == rxdnetbuf.arpframe.sourceip[1])
				&& (arp_tab[i].arp.ip_address.bytes[2] == rxdnetbuf.arpframe.sourceip[2])
				&& (arp_tab[i].arp.ip_address.bytes[3] == rxdnetbuf.arpframe.sourceip[3]))
			{
				arp_tab[i].arp.ttl=0x80;
				for(j = 0; j < 4; j++)
					arp_tab[i].arp.ip_address.bytes[j]=rxdnetbuf.arpframe.sourceip[j];
				for(j = 0; j < 6; j++)
					arp_tab[i].arp.ethernet_address.bytes[j]=rxdnetbuf.arpframe.sourcenodeid[j];
				return;
			}
		}
		
	}

	for(i = 0;i < MaxLenARPtable; i++)
	{
		if(arp_tab[i].arp.status == 0)
		{
			arp_tab[i].arp.status = 1;
			arp_tab[i].arp.ttl = 0x80;
			for(j = 0; j < 4; j++)
				arp_tab[i].arp.ip_address.bytes[j] = rxdnetbuf.arpframe.sourceip[j];
			for(j = 0;j < 6; j++)
				arp_tab[i].arp.ethernet_address.bytes[j] = rxdnetbuf.arpframe.sourcenodeid[j];
			return;
		}
	}

	arp_tab[arpindex].arp.status = 1;		//write arp package to some location.
	arp_tab[arpindex].arp.ttl = 0x80;
	for(j = 0; j < 4; j++)
		arp_tab[arpindex].arp.ip_address.bytes[j] = rxdnetbuf.arpframe.sourceip[j];
	for(j = 0; j < 6; j++)
		arp_tab[arpindex].arp.ethernet_address.bytes[j] = rxdnetbuf.arpframe.sourcenodeid[j];
	arpindex++;
	if(arpindex == MaxLenARPtable)
		arpindex = 0;
}

/*==============================================*/
//	函數(shù)名稱:	更新ARP緩存
/*==============================================*/
void updatearptab(void)
{
	unsigned char	i;

	for(i = 0; i < MaxLenARPtable; i++)
	{
		if(arp_tab[i].arp.status == 1)
		{
			if(arp_tab[i].arp.ttl == 0)
			{
				arp_tab[i].arp.status=0;	
			}
			else
			{
				arp_tab[i].arp.ttl--;
			}
		}
	}
}

/*==============================================*/
//	函數(shù)名稱:	在ARP緩存中查找指定IP/MAC映射對
/*==============================================*/
unsigned char arp_find_mac(union ip_address_type ip,union ethernet_address_type *macadr)
{
	unsigned char	i,j;

	for(i = 0; i < MaxLenARPtable; i++)
	{
		if(arp_tab[i].arp.status == 1)
			if(arp_tab[i].arp.ip_address.dwords == ip.dwords)
			{
				for(j = 0; j < 6; j++)
					macadr->bytes[j] = arp_tab[i].arp.ethernet_address.bytes[j];
				return 1;
		    }
	}
	return 0;
}

/*==============================================*/
//	函數(shù)名稱:	在ARP緩存中直接加入IP/MAC映射對
/*==============================================*/
void arp_ip_mac(void)
{
	unsigned char	i,j;

	for(i = 0; i < MaxLenARPtable; i++)
	{
		if(arp_tab[i].arp.status == 1)
		{
			if((arp_tab[i].arp.ip_address.bytes[0] == rxdnetbuf.ipframe.sourceip[0])
				&& (arp_tab[i].arp.ip_address.bytes[1] == rxdnetbuf.ipframe.sourceip[1])
				&& (arp_tab[i].arp.ip_address.bytes[2] == rxdnetbuf.ipframe.sourceip[2])
				&& (arp_tab[i].arp.ip_address.bytes[3] == rxdnetbuf.ipframe.sourceip[3]))
			{
				arp_tab[i].arp.ttl=0x80;
				for(j = 0; j < 4; j++)
					arp_tab[i].arp.ip_address.bytes[j] = rxdnetbuf.ipframe.sourceip[j];
				for(j = 0; j < 6; j++)
					arp_tab[i].arp.ethernet_address.bytes[j] = rxdnetbuf.etherframe.sourcenodeid[j];
				return;
			}
		}
		
	}

	for(i = 0;i < MaxLenARPtable; i++)
	{
		if(arp_tab[i].arp.status == 0)
		{
			arp_tab[i].arp.status = 1;
			arp_tab[i].arp.ttl = 0x80;
			for(j = 0; j < 4; j++)
				arp_tab[i].arp.ip_address.bytes[j] = rxdnetbuf.ipframe.sourceip[j];
			for(j = 0;j < 6; j++)
				arp_tab[i].arp.ethernet_address.bytes[j] = rxdnetbuf.etherframe.sourcenodeid[j];
			return;
		}
	}

	arp_tab[arpindex].arp.status = 1;		//write arp package to some location.
	arp_tab[arpindex].arp.ttl = 0x80;
	for(j = 0; j < 4; j++)
		arp_tab[arpindex].arp.ip_address.bytes[j] = rxdnetbuf.ipframe.sourceip[j];
	for(j = 0; j < 6; j++)
		arp_tab[arpindex].arp.ethernet_address.bytes[j] = rxdnetbuf.etherframe.sourcenodeid[j];
	arpindex++;
	if(arpindex == MaxLenARPtable)
		arpindex = 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美激情在线| 成人av资源在线观看| 成人免费视频播放| 欧美精品 日韩| 亚洲欧美日韩在线播放| 韩国精品免费视频| 欧美精品aⅴ在线视频| 日韩理论电影院| 国产成人免费9x9x人网站视频| 欧美日韩精品一区二区天天拍小说| 国产精品乱子久久久久| 国产乱国产乱300精品| 日韩一级免费一区| 日韩在线一二三区| 欧美精品日日鲁夜夜添| 洋洋av久久久久久久一区| 成人99免费视频| 国产亚洲一区字幕| 国产一区激情在线| 日韩久久久精品| 蜜臀va亚洲va欧美va天堂| 欧美老女人第四色| 午夜精品一区在线观看| 欧美少妇性性性| 亚洲理论在线观看| 在线观看av不卡| 亚洲黄色av一区| 欧美四级电影在线观看| 亚洲一区二区三区中文字幕| 欧洲激情一区二区| 亚洲成a人片综合在线| 欧美色精品在线视频| 亚洲一区在线视频| 欧美日韩精品三区| 日本欧美加勒比视频| 日韩欧美综合一区| 国产一区二区视频在线| 日本一区二区综合亚洲| 97se狠狠狠综合亚洲狠狠| 亚洲日本青草视频在线怡红院 | 色综合久久综合网97色综合| 1区2区3区精品视频| 91在线国产观看| 亚洲国产中文字幕| 91精品国产手机| 国产毛片精品国产一区二区三区| 国产女同互慰高潮91漫画| 91在线观看免费视频| 亚洲国产精品久久一线不卡| 91精品国产综合久久福利| 久久99热这里只有精品| 中文子幕无线码一区tr| 色综合咪咪久久| 奇米影视一区二区三区小说| 久久中文字幕电影| 99久久综合狠狠综合久久| 亚洲国产你懂的| 日韩欧美国产一二三区| yourporn久久国产精品| 亚洲成在人线在线播放| 精品av综合导航| 99久久精品国产精品久久| 亚洲一区二区三区中文字幕| xnxx国产精品| 在线精品视频一区二区三四| 蜜臀av在线播放一区二区三区| 日本一区二区三级电影在线观看| 色综合色狠狠天天综合色| 久久精品国产亚洲一区二区三区| 欧美国产日本韩| 这里只有精品电影| a级精品国产片在线观看| 五月综合激情网| 国产精品免费av| 91精品国产综合久久香蕉的特点| 成人在线一区二区三区| 亚洲 欧美综合在线网络| 国产调教视频一区| 777精品伊人久久久久大香线蕉| 成人精品一区二区三区四区 | 中文字幕不卡一区| 日韩一级二级三级精品视频| 色一区在线观看| 国产成人aaa| 男女男精品视频| 亚洲国产成人porn| 中文字幕亚洲一区二区va在线| 日韩欧美一级二级三级久久久| 91在线国产福利| 国产电影一区在线| 老司机精品视频在线| 性做久久久久久免费观看欧美| 国产精品高潮呻吟| 久久精品视频一区| 精品国产乱码久久久久久1区2区| 99精品视频在线播放观看| 国产在线不卡视频| 黄网站免费久久| 麻豆专区一区二区三区四区五区| 午夜久久久影院| 亚洲一区二区三区在线播放| 亚洲精品成人在线| 国产日产精品1区| 精品av久久707| 精品成人一区二区三区| 日韩精品一区二区三区三区免费| 欧美亚洲高清一区| 91视视频在线观看入口直接观看www | 亚洲欧洲99久久| 欧美国产成人精品| 国产人伦精品一区二区| 2014亚洲片线观看视频免费| 精品国产一区二区三区四区四 | 精品午夜久久福利影院| 久久国产精品无码网站| 麻豆精品久久久| 精品一区精品二区高清| 久久99精品久久久久久动态图| 蜜桃av一区二区三区电影| 久久精品99国产精品日本| 理论片日本一区| 国产乱码一区二区三区| 国产精品66部| 成人av午夜电影| 欧洲一区在线观看| 欧美妇女性影城| 久久一夜天堂av一区二区三区| 久久久综合九色合综国产精品| 久久久高清一区二区三区| 中文字幕中文乱码欧美一区二区 | 欧洲av在线精品| 91精品国产91综合久久蜜臀| 精品美女一区二区三区| 欧美经典一区二区| 亚洲精选视频免费看| 天堂久久久久va久久久久| 久久99热狠狠色一区二区| 成人午夜私人影院| 欧美亚洲国产一区二区三区| 日韩欧美国产高清| 国产精品卡一卡二| 日韩精品久久久久久| 成人综合婷婷国产精品久久蜜臀 | 欧美一级视频精品观看| 久久久国产午夜精品 | 欧美精品99久久久**| 久久综合色之久久综合| 国产精品国产a级| 日韩福利视频导航| 成人免费高清视频| 欧美一区二区三区色| 国产精品视频第一区| 日日夜夜免费精品视频| 不卡视频在线看| 欧美一区二区三区成人| 国产精品人人做人人爽人人添| 婷婷综合久久一区二区三区| 国产91露脸合集magnet| 69p69国产精品| 亚洲图片欧美激情| 精品无人码麻豆乱码1区2区| 日本韩国视频一区二区| 久久色中文字幕| 日韩中文字幕91| 在线一区二区观看| 中文字幕欧美区| 久久国产精品72免费观看| 日本道在线观看一区二区| 国产日本欧美一区二区| 久久精品72免费观看| 欧美日韩久久久| 国产精品成人午夜| 国产成人午夜精品5599| 欧美一区二区成人6969| 亚洲国产精品久久久久婷婷884| 国产suv精品一区二区三区| 欧美电影免费观看完整版| 亚洲成人综合在线| 欧美专区在线观看一区| 中文字幕一区二区日韩精品绯色| 国产在线不卡一区| 精品免费日韩av| 美女诱惑一区二区| 91精品国产91久久久久久一区二区| 悠悠色在线精品| 色综合视频在线观看| 亚洲三级在线看| 色视频欧美一区二区三区| 国产婷婷色一区二区三区| 国产乱码精品一区二区三区忘忧草| 日韩欧美一区二区三区在线| 视频在线观看91| 在线综合视频播放| 午夜精品久久久| 制服视频三区第一页精品| 日韩一区欧美二区| 日韩欧美三级在线| 久久66热re国产| 久久亚洲捆绑美女| 国产成人av电影免费在线观看|