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

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

?? arplib.c

?? 操作系統(tǒng)開發(fā),vxwork操作系統(tǒng)源代碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
    if (arpCmd (SIOCDARP, &hostAddr, (u_char *) NULL, (int *) NULL) == ERROR)	{        errno = S_arpLib_INVALID_HOST;    /* No such entry in table. */	return (ERROR);	}    return (OK);    }/********************************************************************************* arpCmd - issues an ARP command** This routine generates the low-level ioctl call for an ARP command. Expected* values for the <cmd> parameter are SIOCSARP, SIOCGARP, or SIOCDARP. * The <pIpAddr> parameter specifies the IP address of the host. The* <pHwAddr> pointer provides the corresponding link-level address in* binary form. That parameter is only used with SIOCSARP, and is limited* to the 6-byte maximum required for Ethernet addresses. The <pFlags> * argument provides any flag settings for the entry.** RETURNS: OK, or ERROR if unsuccessful.** NOMANUAL** INTERNAL* This routine should be LOCAL, but it is also used by the proxy ARP* library. That library should call the ioctl interface directly instead* to avoid the overhead created by the additional routines in this* module which it does not use.*/STATUS arpCmd    (    int                 cmd,			/* arp command		*/    struct in_addr *    pIpAddr,		/* ip address		*/    u_char *            pHwAddr,		/* hardware address	*/    int *               pFlags			/* arp flags 		*/    )    {    struct arpreq       arpRequest;		/* arp request struct	*/    STATUS              status = ERROR;		/* return status 	*/    int                 sock;			/* socket 		*/    /* fill in arp request structure */    bzero ((caddr_t) &arpRequest, sizeof (struct arpreq));    arpRequest.arp_pa.sa_family = AF_INET;    ((struct sockaddr_in *)	&(arpRequest.arp_pa))->sin_addr.s_addr = pIpAddr->s_addr;    arpRequest.arp_ha.sa_family = AF_UNSPEC;    if (pHwAddr != NULL)        bcopy ((caddr_t) pHwAddr ,(caddr_t) arpRequest.arp_ha.sa_data,	       ENET_SIZE);    if (pFlags != NULL)    	arpRequest.arp_flags = *pFlags;    if ((sock = socket (AF_INET, SOCK_RAW, 0)) != ERROR)        {        if ((status = ioctl (sock, cmd, (int) &arpRequest)) == OK)	    {    	    if (pHwAddr != NULL)        	bcopy ((caddr_t) arpRequest.arp_ha.sa_data, (caddr_t) pHwAddr,			ENET_SIZE);	    if (pFlags != NULL)    		*pFlags = arpRequest.arp_flags;	    }        close (sock);        }    return (status);    }/********************************************************************************* arpFlush - flush all entries in the system ARP table** This routine flushes all non-permanent entries in the ARP cache.** RETURNS: N/A*/void arpFlush (void)    {    register struct llinfo_arp *la;    FAST struct rtentry * 	pRoute;     int				s;#ifdef VIRTUAL_STACK    virtualStackIdCheck();    la = _llinfo_arp.la_next;#else    la = llinfo_arp.la_next;#endif /* VIRTUAL_STACK */    s = splnet ();#ifdef VIRTUAL_STACK    while (la != &_llinfo_arp) #else    while (la != &llinfo_arp) #endif	{	pRoute = la->la_rt; 	la = la->la_next;	/* if entry permanent */	if ((pRoute->rt_rmx.rmx_expire == 0) || (pRoute->rt_flags == 0))	    continue;	arptfree(la->la_prev); /* timer has expired; clear */	}    splx (s);    }/********************************************************************************* etherAsciiToEnet - convert Ethernet address** This routine converts an Ethernet address in ascii format to its normal* 48 bit format.  <asciiAddr> is the string Ethernet address which has the form* "x:x:x:x:x:x" where x is a hexadecimal number between 0 and ff.  <retEnet> is* where the Ethernet address gets returned.   This routine is similar to the* UNIX call ether_aton.** RETURNS: OK, or ERROR if unsuccessful.** ERRNO: S_arpLib_INVALID_ENET_ADDRESS*/LOCAL STATUS etherAsciiToEnet    (    char *		asciiAddr,		/* enet addr in ascii	*/    u_char *		retEnet			/* return enet addr	*/    )    {    int			enet [ENET_SIZE];	/* Ethernet address     */    int			ix;			/* index variable	*/    if (sscanf (asciiAddr, "%x:%x:%x:%x:%x:%x", &enet [0],		&enet [1], &enet [2], &enet [3], &enet [4],		&enet [5]) != ENET_SIZE)	{	printf ("arp: invalid Ethernet address %s\n", asciiAddr);	errno = S_arpLib_INVALID_ENET_ADDRESS;	return (ERROR);	}    for (ix = 0; ix < ENET_SIZE; ix++)	retEnet [ix] = (u_char) enet [ix];   return (OK);   }/********************************************************************************* arpResolve - resolve a hardware address for a specified Internet address** This routine uses the Address Resolution Protocol (ARP) and internal ARP* cache to resolve the hardware address of a machine that owns the Internet* address given in <targetAddr>.** The hardware address is copied to <pHwAddr> as network byte order, if the* resolution of <targetAddr> is successful.  <pHwAddr> must point to a buffer* which is large enough to receive the address.** NOTE: RFC 1122 prohibits sending more than one arp request per second.  Any* numTicks value that would result in a shorter time than this is ignored.** RETURNS:* OK if the address is resolved successfully, or ERROR if <pHwAddr> is NULL,* <targetAddr> is invalid, or address resolution is unsuccessful.** ERRNO:*  S_arpLib_INVALID_ARGUMENT*  S_arpLib_INVALID_HOST**/STATUS arpResolve    (    char                *targetAddr,  /* name or Internet address of target */    char                *pHwAddr,     /* where to return the H/W address */    int                 numTries,     /* number of times to try ARPing (-1 means try                                         forever) */    int                 numTicks      /* number of ticks between ARPs */    )    {    struct ifnet *	pIf = NULL;    struct sockaddr_in  sockInetAddr;    struct rtentry *	pRt;    unsigned long	addr;    int			retVal = 0;    if (pHwAddr == NULL || numTries < -1 || numTries == 0)     /* user messed up */	{	errno = S_arpLib_INVALID_ARGUMENT;        return (ERROR);	}    /* the 'targetAddr' can either be the hostname or the actual Internet     * address.     */    if ((addr = (unsigned long) hostGetByName (targetAddr)) == ERROR &&	(addr = inet_addr (targetAddr)) == ERROR)	{	errno = S_arpLib_INVALID_HOST;	return (ERROR);	}    bzero ((caddr_t)&sockInetAddr, sizeof (sockInetAddr));    sockInetAddr.sin_len = sizeof(struct sockaddr_in);    sockInetAddr.sin_family = AF_INET;    sockInetAddr.sin_addr.s_addr = addr;     /*     * Get associated local interface's ifnet. This search also     * clones an empty ARP entry from the interface route if one     * does not already exist.     */    pRt = rtalloc1 ( (struct sockaddr *)&sockInetAddr, 1);    if (pRt == NULL)	{	errno = S_arpLib_INVALID_HOST;	return (ERROR);	}    pIf = pRt->rt_ifp;    if (pIf == NULL)	{        rtfree (pRt);	errno = S_arpLib_INVALID_HOST;	return (ERROR);	}    /* return 0xffffffffffff for broadcast Internet address */    if (in_broadcast (sockInetAddr.sin_addr, pIf))	{        bcopy ((char *) etherbroadcastaddr, pHwAddr,	       sizeof (etherbroadcastaddr));        rtfree (pRt);	return (OK);	}    /* Try to resolve the Ethernet address by calling arpresolve() which     * may send out ARP request messages out onto the Ethernet wire.     */    while ((numTries == -1 || numTries-- > 0) &&	   (retVal = arpresolve ((struct arpcom *) pIf, 				 (struct rtentry *)pRt, 				 (struct mbuf *) NULL,				 (struct sockaddr *)&sockInetAddr,				 (UCHAR *)pHwAddr))	   == 0)    	if (numTries)           /* don't delay after last arp */            taskDelay (numTicks);    rtfree (pRt);    if (retVal == 0)		/* unsuccessful resolution */	{	errno = S_arpLib_INVALID_HOST;        return (ERROR);	}    return (OK);    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品日韩一| 国产91精品欧美| 成人免费视频播放| 欧美日韩一卡二卡| 中文一区在线播放| 麻豆免费精品视频| 91精品1区2区| 国产精品无圣光一区二区| 午夜精品免费在线观看| 成人黄色一级视频| 精品国产乱码久久久久久夜甘婷婷| 有码一区二区三区| 国产成人免费视频网站高清观看视频 | 精品欧美一区二区在线观看| 中文字幕一区免费在线观看| 激情成人综合网| 91精品国产综合久久久久久久久久| 中文字幕中文字幕在线一区 | 久久亚区不卡日本| 婷婷开心激情综合| 91久久精品一区二区二区| 国产精品免费看片| 国产一区二区按摩在线观看| 日韩视频在线你懂得| 亚洲一区二区三区激情| 色香蕉久久蜜桃| 亚洲欧美综合色| 成年人午夜久久久| 中文字幕av一区二区三区| 国产原创一区二区| 久久婷婷综合激情| 国内精品嫩模私拍在线| 日韩精品一区二区三区中文精品| 日韩制服丝袜先锋影音| 欧美日韩精品久久久| 亚洲国产成人精品视频| 欧美午夜精品久久久久久孕妇| 亚洲另类中文字| 91黄视频在线| 亚洲成人777| 91精品综合久久久久久| 美国毛片一区二区三区| 精品久久一二三区| 国产精品综合一区二区| 国产婷婷一区二区| 成人av网站在线观看| 国产精品久久久久影院老司 | 韩国精品久久久| 久久久久久久久岛国免费| 国产成人av福利| 亚洲人成网站影音先锋播放| 欧美性生活一区| 青青国产91久久久久久| 久久蜜桃av一区精品变态类天堂 | 色噜噜狠狠一区二区三区果冻| 一区二区三区精品在线| 在线播放91灌醉迷j高跟美女 | 91蝌蚪porny| 亚洲国产中文字幕| 日韩一二三区视频| 韩国v欧美v日本v亚洲v| 国产精品初高中害羞小美女文| 欧美在线一区二区三区| 日韩黄色在线观看| 国产色产综合产在线视频| 91在线云播放| 免费高清在线视频一区·| 国产女主播视频一区二区| 欧美在线观看视频一区二区 | 97精品久久久久中文字幕| 亚洲国产综合91精品麻豆| www成人在线观看| 欧美在线综合视频| 国产乱码精品一品二品| 亚洲国产欧美一区二区三区丁香婷| 日韩精品一区二区三区视频在线观看 | 国产91露脸合集magnet | 欧美三级在线视频| 国产一区二区精品在线观看| 亚洲亚洲精品在线观看| 国产欧美日韩一区二区三区在线观看| 欧美艳星brazzers| 亚洲精选一二三| 日韩欧美在线1卡| 91丨porny丨国产入口| 免费三级欧美电影| 久久免费电影网| 欧美日韩高清在线| 成人性视频网站| 日韩精品成人一区二区三区 | 欧美日韩成人高清| 91原创在线视频| 喷水一区二区三区| 自拍偷在线精品自拍偷无码专区| 在线成人高清不卡| 99久久精品情趣| 国内精品写真在线观看| 免费人成在线不卡| 亚洲欧美日韩国产另类专区| 日韩一区二区免费视频| 一本久久综合亚洲鲁鲁五月天| 久久国产欧美日韩精品| 亚洲综合一二区| 国产精品免费看片| 精品国产免费视频| 欧美一区二区视频在线观看2022 | 捆绑紧缚一区二区三区视频| 国产无人区一区二区三区| 精品久久久久久久久久久久久久久 | 日日摸夜夜添夜夜添国产精品| 国产精品日日摸夜夜摸av| 欧美一级精品在线| 欧美天天综合网| 在线中文字幕一区| 成人黄色免费短视频| 久久国产麻豆精品| 日韩vs国产vs欧美| 夜夜揉揉日日人人青青一国产精品| 久久日韩精品一区二区五区| 欧美丰满美乳xxx高潮www| 欧美日韩大陆在线| 欧美视频自拍偷拍| 色哦色哦哦色天天综合| 不卡av免费在线观看| 国产精品资源在线观看| 激情五月激情综合网| 久久福利资源站| 成人午夜短视频| 99久久综合99久久综合网站| 成人激情图片网| 成人a免费在线看| 成人免费观看视频| 成人91在线观看| va亚洲va日韩不卡在线观看| 成人午夜又粗又硬又大| 国产成+人+日韩+欧美+亚洲| 久久99精品国产.久久久久久| 国产精品一品二品| 成人精品视频一区| 91网页版在线| 欧美体内she精视频| 欧美日韩亚洲综合在线| 欧洲国内综合视频| 欧美精品一区二区高清在线观看| 久久这里只有精品视频网| 久久精品一区二区三区不卡牛牛| 国产网站一区二区| 中文字幕一区二区三区四区| 亚洲精品国产无套在线观| 一区二区三区在线视频播放| 日本欧美一区二区| 国产真实乱子伦精品视频| 丁香桃色午夜亚洲一区二区三区| 97精品视频在线观看自产线路二| 欧美午夜电影一区| 欧美一区午夜视频在线观看 | 亚洲欧美自拍偷拍| 亚洲五月六月丁香激情| 蜜臀av一区二区| 91麻豆国产福利在线观看| 欧美人动与zoxxxx乱| 久久人人超碰精品| 中文字幕综合网| 天堂久久一区二区三区| 高清在线不卡av| 欧美日韩免费不卡视频一区二区三区| 日韩西西人体444www| 国产精品视频一区二区三区不卡| 亚洲欧美另类在线| 蜜桃视频第一区免费观看| 国产成人精品亚洲午夜麻豆| 色综合久久综合中文综合网| 日韩一区二区三区免费看| ㊣最新国产の精品bt伙计久久| 日日骚欧美日韩| 99久久精品费精品国产一区二区| 精品国产精品网麻豆系列| 亚洲乱码日产精品bd| 九九九久久久精品| 色综合中文字幕国产 | 91久久国产综合久久| 久久一二三国产| 爽爽淫人综合网网站| 成人午夜又粗又硬又大| 日韩欧美一级二级三级| 亚洲欧美国产毛片在线| 国产一区二区三区四区五区美女| 欧美性大战xxxxx久久久| 日韩一区中文字幕| 国产美女视频91| 欧美一三区三区四区免费在线看| 成人免费在线观看入口| 国产自产v一区二区三区c| 欧美一区二区三区在线视频| 亚洲精选视频免费看| 成人免费高清视频在线观看| 欧美白人最猛性xxxxx69交| 亚洲成人av一区二区三区| 欧美午夜一区二区| 亚洲色图视频网|