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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? arp.c

?? DDK編程網(wǎng)卡驅(qū)動
?? C
字號:
/************************************************************
 * File name	: Arp.c										*
 * By 			: hugang, hgx2000@mail.china.com			*
 ************************************************************/

#include "armnet.h"
#include "..\inc\44blib.h"
#include <string.h>

extern NODE locnode;

static ARP_ENTRY arp_entrys;
static ARP_ENTRY arp_cache[ARP_CACHE_SIZE];
static int arp_chche_cur = 0;


/*******************************************************************************************************/
int ArpInit(void)
{
	memset(&arp_entrys, 0, sizeof(ARP_ENTRY));
	memset(arp_cache, 0, sizeof(ARP_ENTRY) * ARP_CACHE_SIZE);

	return 0;
}


/*******************************************************************************************************/
int ArpAddEntry(unsigned int ip, unsigned char *mac)
{
	memcpy(arp_entrys.mac, mac, MACLEN);
	arp_entrys.ip = swapl(ip);

	return 0;
}


/*******************************************************************************************************/
int ArpAddCache( unsigned int ip, unsigned char *mac)
{
	int i;

	for (i = 0; i < ARP_CACHE_SIZE; i++) {
		if (ip == arp_cache[i].ip)
			break;
	}

	if (i == ARP_CACHE_SIZE) {
		i = arp_chche_cur;
		arp_chche_cur = (arp_chche_cur + 1) % ARP_CACHE_SIZE;
	}

	memcpy(arp_cache[i].mac, mac, MACLEN);
	arp_cache[i].ip = ip;

	return 0;
}


/*******************************************************************************************************/
int ArpFindCache(unsigned int ip, unsigned char *mac)
{
	int i;

	for (i = 0; i < ARP_CACHE_SIZE; i++) {
		if (ip == arp_cache[i].ip) {
			memcpy(mac, arp_cache[i].mac, MACLEN);
			break;
		}
	}

	if (i == ARP_CACHE_SIZE) {
		return -1;
	}

	return 0;
}


/*******************************************************************************************************/
int ArpSendReq(ETHERFRAME *efp, NODE *destp)
{
	NODE  tmpnode;
	short txlen;

	tmpnode.ip = destp->ip;
	memset(tmpnode.mac, 0xff, MACLEN);

	txlen = MakeArp(efp, &locnode, &tmpnode, ARPREQ);
	PutEthernet(efp, txlen); 

	return 0;
}


/********************************************************************************************************
 * Check ARP packet, swap bytes, return -1, 0 if not ARP												*
 ********************************************************************************************************/
short IsArp(ETHERFRAME *efp, short len)
{
    ARPKT *arp;
    short dlen=0;
    if (efp->e.ptype==PCOL_ARP && len>=sizeof(ARPKT))
    {                                   	/* If protocol OK.. */
    	SwapArp(efp);
        arp = (ARPKT *)(efp->edata);
        if (arp->hrd==HTYPE && arp->pro==ARPPRO)
            dlen = -1;                  	/* Return non-zero if OK */
        else
            dlen = 0;    
    }
    return(dlen);
}


/********************************************************************************************************
 * Make an ARP packet, return its total length 															*
 ********************************************************************************************************/
short MakeArp(ETHERFRAME *efp, NODE *srcep, NODE *destp, unsigned short codetype)
{
	unsigned char i;
	
    ARPKT *arp;
    arp = (ARPKT *)(efp->edata);
    for(i=0;i<MACLEN;i++)
    {
    	arp->smac[i] = srcep->mac[i];  				// Srce ARP ether addr
    	arp->dmac[i] = destp->mac[i];  				// Dest ARP ether addr
    }
    arp->hrd = HTYPE;  			          			// Hware & protocol types
    arp->pro = ARPPRO;	
    arp->hln = MACLEN;                  			// Hardware addr len
    arp->pln = sizeof(unsigned int);          		// IP addr len 
    arp->op  = codetype;	                    	// ARP opcode 
    arp->dip = GateIp(destp, srcep);		   		// Dest ip addr (maybe gateway) 
    arp->sip = srcep->ip; 		              		// Source IP addr 
    SwapArp(efp);

   	return(MakeFrame(efp,srcep->mac,destp->mac, PCOL_ARP, sizeof(ARPKT)));
}


/********************************************************************************************************
 * Swap byte order of ints in ARP header 																*
 ********************************************************************************************************/
void SwapArp(ETHERFRAME *efp)
{
    ARPKT *arp;
    unsigned char *p_dip, *p_sip;
	unsigned int i_dip, i_sip;
    
    arp = (ARPKT *)(efp->edata);
    p_sip = (unsigned char *)&arp->sip;
    p_dip = (unsigned char *)&arp->dip;
    i_sip = p_sip[3] + ((unsigned int)p_sip[2]<<8) + ((unsigned int)p_sip[1]<<16) + ((unsigned int)p_sip[0]<<24);
    i_dip = p_dip[3] + ((unsigned int)p_dip[2]<<8) + ((unsigned int)p_dip[1]<<16) + ((unsigned int)p_dip[0]<<24);

    arp->hrd = swapw(arp->hrd);
    arp->pro = swapw(arp->pro);
    arp->op  = swapw(arp->op);
    arp->sip = READ_PACKED(i_sip);
    arp->dip = READ_PACKED(i_dip);
}


/********************************************************************************************************
 * ARP handle							 																*
 ********************************************************************************************************/
void ArpRcvPacket(ETHERFRAME *efp)
{
    ARPKT *arp;
	NODE  tmpnode;
	short txlen;

	arp = (ARPKT *)(efp->edata);
			
	tmpnode.ip = READ_PACKED(arp->sip);                 /* Make ARP response */
    memcpy(tmpnode.mac, (unsigned char *)arp->smac, MACLEN);
	DEBUGF(ARP_DEBUG, ("add %x to arp cache\n", tmpnode.ip));
	ArpAddCache(tmpnode.ip, tmpnode.mac);
    txlen = MakeArp(efp, &locnode, &tmpnode, ARPRESP);
    DEBUGF(ARP_DEBUG,("Put ARP REPLY\n"));
    PutEthernet(efp, txlen);              /* Send packet */
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合色丁香婷婷六月图片| 国产精品一区一区| 激情文学综合丁香| 91免费看片在线观看| 精品裸体舞一区二区三区| 亚洲视频中文字幕| 韩国三级在线一区| 欧美二区三区的天堂| **网站欧美大片在线观看| 久久99热这里只有精品| 在线精品亚洲一区二区不卡| 国产色91在线| 国产在线视视频有精品| 欧美久久一二区| 亚洲国产一区视频| 99这里只有精品| 国产精品欧美精品| 国产乱一区二区| 亚洲精品一区二区三区影院 | 韩国欧美国产1区| 日韩午夜激情av| 蜜臀av国产精品久久久久| 欧美影院午夜播放| 亚洲综合一区二区三区| 91看片淫黄大片一级在线观看| 久久精品无码一区二区三区| 精品一区二区三区日韩| 精品国免费一区二区三区| 青草国产精品久久久久久| 欧美另类高清zo欧美| 五月激情六月综合| 5月丁香婷婷综合| 免费人成精品欧美精品 | 在线观看av一区| 亚洲蜜臀av乱码久久精品蜜桃| www.欧美色图| 国产精品初高中害羞小美女文| 不卡的av在线播放| 亚洲精选视频免费看| 色av成人天堂桃色av| 亚洲午夜激情网页| 欧美日韩久久一区二区| 日本vs亚洲vs韩国一区三区二区| 6080午夜不卡| 国产一区二区三区观看| 26uuu成人网一区二区三区| 国产精品一级片在线观看| 国产午夜精品久久久久久免费视| 风间由美一区二区av101| 国产精品久久久久久久久免费丝袜| 99久久99久久精品免费观看| 亚洲免费色视频| 欧美日韩国产影片| 精品一区精品二区高清| 久久综合99re88久久爱| 成人av网址在线观看| 亚洲午夜在线视频| 精品国产自在久精品国产| 成人免费av资源| 亚洲亚洲人成综合网络| 久久亚洲欧美国产精品乐播| 成人av资源在线观看| 午夜视频在线观看一区| 国产亚洲自拍一区| 91久久免费观看| 紧缚捆绑精品一区二区| 亚洲欧美国产77777| 日韩一区二区在线看| 99综合电影在线视频| 奇米一区二区三区| 亚洲欧洲av另类| 51午夜精品国产| caoporn国产一区二区| 日韩电影在线一区| **欧美大码日韩| 久久婷婷色综合| 精品视频全国免费看| 国产成人一级电影| 日韩精品欧美精品| 国产精品电影一区二区| 精品美女被调教视频大全网站| 在线观看免费成人| 成人久久18免费网站麻豆| 蜜桃久久久久久久| 亚洲一区免费视频| 国产精品丝袜91| 精品国产亚洲在线| 欧美美女网站色| 一本大道久久精品懂色aⅴ| 国产精品资源网| 久久99日本精品| 美女视频网站黄色亚洲| 亚洲一级二级三级| 亚洲欧美区自拍先锋| 中文字幕免费不卡| 精品福利av导航| 日韩视频免费观看高清完整版在线观看 | 亚洲国产婷婷综合在线精品| 日本一区二区三区dvd视频在线 | 日本中文字幕一区| 亚洲免费视频中文字幕| 中文av字幕一区| 国产亚洲精品中文字幕| www成人在线观看| 精品国内片67194| 精品久久久久久亚洲综合网| 91精品国产一区二区| 欧美乱妇20p| 欧美高清你懂得| 5858s免费视频成人| 欧美精品在线视频| 欧美精品久久久久久久多人混战 | 色欧美片视频在线观看在线视频| 国产成人在线色| 国产高清久久久| 国产高清精品久久久久| 国产乱码精品一区二区三区忘忧草| 日韩国产欧美在线播放| 日韩avvvv在线播放| 蜜芽一区二区三区| 精品一区二区免费在线观看| 另类欧美日韩国产在线| 久久综合综合久久综合| 精品一区二区在线免费观看| 国内精品免费**视频| 高清国产午夜精品久久久久久| 成人免费毛片片v| 色综合天天综合狠狠| 欧美日韩一区精品| 日韩欧美国产三级| 国产夜色精品一区二区av| 亚洲手机成人高清视频| 五月婷婷欧美视频| 精品一区二区三区免费观看| 粉嫩高潮美女一区二区三区| 91丨porny丨户外露出| 欧美日韩情趣电影| 精品久久久久久久久久久久久久久久久 | 在线播放/欧美激情| 久久久久久久综合色一本| 日韩一区在线播放| 三级精品在线观看| 国产精品综合二区| 欧洲精品在线观看| 欧美一卡二卡三卡四卡| 国产喂奶挤奶一区二区三区| 亚洲精品视频在线观看免费| 日韩中文字幕一区二区三区| 国产成人在线免费观看| 在线观看一区二区精品视频| 欧美大片国产精品| 亚洲视频网在线直播| 麻豆精品在线看| 91国偷自产一区二区三区观看 | 国产原创一区二区| 91网站在线观看视频| 欧美一区二区三区免费视频| 国产精品蜜臀在线观看| 麻豆国产欧美日韩综合精品二区| av不卡免费电影| 日韩欧美不卡在线观看视频| 亚洲色图第一区| 国产精品99久久久久久久女警| 欧美艳星brazzers| 国产欧美日韩视频一区二区| 偷窥少妇高潮呻吟av久久免费| 国产a区久久久| 日韩午夜在线观看视频| 亚洲裸体xxx| 国产91精品精华液一区二区三区 | 看电影不卡的网站| 在线视频你懂得一区二区三区| 久久综合九色综合久久久精品综合| 亚洲一区二区精品视频| 99精品久久久久久| 国产亚洲成av人在线观看导航| 丝袜诱惑制服诱惑色一区在线观看| k8久久久一区二区三区| 久久青草国产手机看片福利盒子 | 久久精品亚洲一区二区三区浴池| 亚洲国产中文字幕在线视频综合| 成人一级片在线观看| 精品国产一区二区三区不卡| 午夜电影一区二区| 欧美日韩在线精品一区二区三区激情| 自拍偷拍亚洲欧美日韩| 国产高清视频一区| 久久亚洲捆绑美女| 麻豆久久一区二区| 日韩免费视频一区二区| 天天影视涩香欲综合网| 91麻豆精品久久久久蜜臀| 亚洲成人你懂的| 欧美日韩视频专区在线播放| 一二三区精品福利视频| 在线观看亚洲专区| 亚洲bdsm女犯bdsm网站| 欧美人狂配大交3d怪物一区| 婷婷综合久久一区二区三区| 欧美一区二区三区白人|