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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? icmp.c

?? 完整的TCP/IP源代碼,絕對(duì)好用
?? C
字號(hào):


#include "C:\wql\tcpipsocket\ip.h"
#include "C:\wql\tcpipsocket\icmp.h"
#include "C:\wql\tcpipsocket\target.h"
//#include <stdio.h>
#include <string.h>
#include "C:\wql\tcpipsocket\func.h"
/* This list will contain information needed to send pings. It is used
   to determine if reply is for a ping that we sent. */

ICMP_ECHO_Cache ICMP_ECHO_Cache_IN[icmp_cache_num];
/* This will be used for generating a sequence number when sending ICMP
   echo requests (pings). */
static UINT16 ICMP_Echo_Req_Seq_Num;



/***********************************************************************
*                                                                       
* FUNCTION
*
*     ICMP_Init                                                        
*                                                                       
* DESCRIPTION                                                           
*                                                                       
*      Initialize the ICMP module. In this case is only consists of     
* nulling the ICMP_Echo_List.                                           
*                                                                       
* INPUTS                                                                
*                                                                       
*      none                                                             
*                                                                       
* OUTPUTS                                                               
*                                                                       
*      none                                                             
*                                                                       
*************************************************************************/
void ICMP_Init ()
{
    UINT8 i,j;
    /* Null the head and tail pointers of the echo list. */
    for(i=0;i<icmp_cache_num;i++)
    	{
		for (j=0;j<sizeof(ICMP_ECHO_Cache);j++)
		 {
    	  *((UINT8 *)(&ICMP_ECHO_Cache_IN[i])+j) =0;
		 }
    	}
    /* Start the sequence number at zero. */
    ICMP_Echo_Req_Seq_Num = 0;
}

/***********************************************************************
*                                                                       
* FUNCTION
*
*      ICMP_Interpret                                                   
*                                                                       
* DESCRIPTION                                                           
*                                                                       
*      Process received ICMP datagrams.                                 
*                                                                       
* INPUTS                                                                
*                                                                       
*      buf_ptr   - the ip  buffer pointer                                                          
*      buf_size  - buffer size
*      ip_source - the IP source                                                       
*                                                                       
* OUTPUTS                                                               
*                                                                       
*      0         -  Success                          
*      1         -  Failure                          
*                                                                       
*************************************************************************/
UINT8 ICMP_Interpret (UINT8* buf_ptr, UINT16 buf_size , UINT8 *ip_source)
{
    ICMP_LAYER              *icp;
    UINT16                    i;
    UINT8             j;

 //   printf("received icmp");
    icp = (ICMP_LAYER *)(buf_ptr+20);   // discard ip header

//     i = icp->icmp_type;
	i= Check_sum (buf_ptr,buf_size);
    if (icp->icmp_cksum)
    {        /* ignore if chksum=0 */
        if (i != 0xffff)//Check_sum (buf_ptr,buf_size))
        {
            return (1);
        } /* end if */
    } /* end if */

    i = icp->icmp_type;
    switch(i)
    {
        case ICMP_ECHO:                    /* ping request sent to me */
	//	printf("received echo");
            
            icp->icmp_code = ICMP_ECHOREPLY;           /* echo reply type */
            icp->icmp_type = ICMP_ECHOREPLY;
			icp->icmp_cksum = 0;
			icp->icmp_cksum = ~ Check_sum(buf_ptr+20,buf_size-20);
            IP_Send((UINT8 *)icp, (buf_size-20), ip_source, 0x01, 0x120);      
            break;

        case ICMP_ECHOREPLY:                /* ping reply requested by me */
	//	printf("received echorply");
            /* Search the list looking for a matcing ID and seq num. */
            for( i = 0; i < icmp_cache_num; i++)
            	{
            	j=memcmp(ICMP_ECHO_Cache_IN[i].dest_ip,ip_source,4);
            	if((ICMP_ECHO_Cache_IN[i].Flag == 4) && (j == 0))
            		{

            		ICMP_ECHO_Cache_IN[i].Flag = 0; // blank the cache.
            		break;
            		}

            	}


            break;

        case ICMP_REDIRECT:


            break;

        case ICMP_SOURCEQUENCH:
             
             break;

        case ICMP_UNREACH:
        	
            break;

        default:

            break;

    } /* end switch */

    return (0);
}   /* end icmpinterpret() */

//*****************************************************************
void ICMP_Send_Echo_Request( UINT8 *dest_ip, UINT16 timeout)
{
    ICMP_LAYER                 icmp_ptr;
    UINT16                       len;
    UINT8                      i,j;
      
        /* Bump the sequence number. */
        ICMP_Echo_Req_Seq_Num++;

        /* Set the data pointer to the correct location. */
        /* Get the length of the ICMP header. */
        len = ICMP_ECHO_REQ_HEADER_SIZE;

        /* Set the ICMP type to echo */
       icmp_ptr.icmp_type = ICMP_ECHO;

        /* Set the code to zero, always zero for echo packets */
        icmp_ptr.icmp_code = 0;

        /* Set the ID and sequence number fields. */
        icmp_ptr.icmp_hun.ih_idseq.icd_id = ICMP_ECHO_REQ_ID;
        icmp_ptr.icmp_hun.ih_idseq.icd_seq = ICMP_Echo_Req_Seq_Num;

        /* Fill in the standard 32 bytes of data. */
		j='a';
		for (i=0; i<32;i++)
		{
        icmp_ptr.icmp_dun.id_data[i] = j++;
		if(j>'z') j='a';
        }
		/* Compute the checksum */
        icmp_ptr.icmp_cksum =  0;
        //icmp_ptr.icmp_cksum = Check_sum((UINT8 *)&icmp_ptr, 40);

        /* Send this packet. */
        IP_Send((UINT8 *)&icmp_ptr ,40,dest_ip,0x0800,120);
        // change the flag and timer.
        for(i =0 ;i <5; i++)
        	{
        	if( ICMP_ECHO_Cache_IN[i].Flag == 0)
        		{
        		memcpy(ICMP_ECHO_Cache_IN[i].dest_ip,dest_ip,4);
        		ICMP_ECHO_Cache_IN[i].Flag = 4;
        		ICMP_ECHO_Cache_IN[i].Timer = timeout  ;  //  0.3s   20ms/tick
				break;
        		}
        	}
        if(i==5)
        	{
        	//printf(" the ping cache is not enough");
        	
        	}

} /* ICMP_Send_Echo_Reuest */







?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频一区二区三区在线播放| 色综合天天在线| 91精品国产综合久久精品麻豆 | 欧美精品一区男女天堂| 日韩精品福利网| 日韩一级高清毛片| 狠狠色丁香婷婷综合久久片| 久久久午夜精品| 99精品偷自拍| 亚洲国产日韩综合久久精品| 在线成人免费视频| 国产一区在线看| 国产女人18水真多18精品一级做| 成人高清在线视频| 亚洲韩国精品一区| 精品蜜桃在线看| 99国内精品久久| 日韩精品1区2区3区| 久久久久久久久久久久久久久99| aaa欧美色吧激情视频| 亚洲动漫第一页| 久久先锋影音av鲁色资源网| 91色婷婷久久久久合中文| 亚洲综合成人网| 日韩欧美成人一区二区| 成人激情动漫在线观看| 亚洲成人精品一区| 国产欧美日韩激情| 欧美人妖巨大在线| 成人福利视频网站| 日本特黄久久久高潮| 国产精品久久久久一区二区三区共 | 久久午夜国产精品| 91免费在线播放| 九九视频精品免费| 亚洲国产视频一区| 久久久激情视频| 欧美日韩黄色一区二区| 成人aa视频在线观看| 日韩电影一二三区| 一区二区视频在线| 久久久久久久久久电影| 欧美日韩一区成人| 99re66热这里只有精品3直播| 久久精品国产精品亚洲红杏| 一区二区三区在线观看国产| 国产欧美在线观看一区| 欧美一级夜夜爽| 欧美综合久久久| bt欧美亚洲午夜电影天堂| 久久国产麻豆精品| 天堂久久久久va久久久久| 亚洲欧美日韩国产手机在线| 欧美国产日韩在线观看| 精品国产伦一区二区三区观看体验 | 中文字幕在线不卡| 2023国产精品| 日韩女同互慰一区二区| 欧美日韩和欧美的一区二区| 色先锋aa成人| 97久久超碰国产精品| 国产.精品.日韩.另类.中文.在线.播放| 蜜臀久久99精品久久久久宅男| 一区二区三区影院| 亚洲免费av在线| 亚洲欧美日韩久久| 亚洲男同1069视频| 亚洲柠檬福利资源导航| 1024成人网色www| 中文子幕无线码一区tr| 国产精品情趣视频| 国产精品沙发午睡系列990531| 久久久夜色精品亚洲| 337p日本欧洲亚洲大胆精品| 日韩一级二级三级| 欧美刺激午夜性久久久久久久| 日韩午夜在线观看视频| 日韩一区二区免费在线电影 | 精品久久久久一区| 日韩亚洲国产中文字幕欧美| 日韩一区二区三区三四区视频在线观看| 欧美日韩中文一区| 欧美蜜桃一区二区三区| 欧美日韩一区二区在线观看视频| 欧美图区在线视频| 欧美高清视频在线高清观看mv色露露十八 | 欧美精品在线观看一区二区| 日本久久一区二区| 在线综合视频播放| 欧洲精品视频在线观看| 国产剧情一区二区| 老司机精品视频在线| av午夜精品一区二区三区| 在线播放视频一区| 国产精品乱码一区二三区小蝌蚪| 香港成人在线视频| 成人av动漫网站| 日韩亚洲欧美成人一区| 日韩毛片在线免费观看| 国产一区二区电影| 91久久精品午夜一区二区| 国产亚洲欧美日韩日本| 爽好久久久欧美精品| av激情综合网| 精品国产青草久久久久福利| 亚洲国产欧美另类丝袜| jlzzjlzz亚洲日本少妇| 久久伊人蜜桃av一区二区| 亚洲在线视频网站| 99久久99久久免费精品蜜臀| 亚洲精品一区二区三区影院| 五月激情六月综合| 一本一本大道香蕉久在线精品 | 91色视频在线| 国产女人aaa级久久久级| 久久99精品一区二区三区| 欧美色图在线观看| 亚洲精品美腿丝袜| 岛国精品在线观看| 久久久久久电影| 久久精品99久久久| 91精品国产综合久久小美女| 亚洲一区在线播放| 在线观看一区二区视频| 自拍偷拍国产精品| a美女胸又www黄视频久久| 亚洲国产精华液网站w| 国产伦精品一区二区三区视频青涩 | 91免费看视频| 亚洲少妇30p| 色先锋久久av资源部| 综合分类小说区另类春色亚洲小说欧美| 成人综合婷婷国产精品久久免费| 国产日韩一级二级三级| 国产成人午夜片在线观看高清观看| 精品国产网站在线观看| 精品在线播放免费| 久久久美女毛片| 岛国av在线一区| 国产欧美日韩另类视频免费观看| 国产精品99久久久久久久vr| 国产亚洲欧洲997久久综合 | 综合欧美一区二区三区| 99国产精品国产精品毛片| 亚洲天堂福利av| 在线免费一区三区| 五月婷婷激情综合网| 欧美一区二区精美| 精品一区二区久久久| 国产喂奶挤奶一区二区三区| 成人av在线看| 一区二区三区欧美激情| 欧美日韩精品二区第二页| 日本免费在线视频不卡一不卡二| 精品日韩一区二区| 成人污污视频在线观看| 亚洲欧美视频在线观看| 欧美日本精品一区二区三区| 麻豆成人久久精品二区三区小说| 久久久精品tv| 色婷婷亚洲婷婷| 奇米一区二区三区av| 久久久九九九九| 日本久久电影网| 午夜国产不卡在线观看视频| 精品国产一区久久| 成人性生交大片免费看中文网站| 亚洲精品ww久久久久久p站| 欧美卡1卡2卡| 国产成人精品影视| 亚洲精品亚洲人成人网在线播放| 在线电影欧美成精品| 国产精品996| 亚洲国产一二三| 久久综合久久综合久久综合| 91首页免费视频| 免费人成黄页网站在线一区二区 | 国产精品成人在线观看| 欧美日韩一区二区三区四区| 久久精品国产第一区二区三区| 中文字幕一区二区三中文字幕| 欧美精品三级日韩久久| 成人美女视频在线看| 天天综合色天天综合色h| 欧美国产精品中文字幕| 欧美日韩国产一二三| 国产成人啪免费观看软件| 性久久久久久久久| 国产精品素人视频| 91精品国产全国免费观看| 99视频超级精品| 韩国av一区二区| 午夜欧美大尺度福利影院在线看| 国产亚洲欧美一级| 91精品欧美综合在线观看最新| 成人激情电影免费在线观看| 免费国产亚洲视频| 亚洲丶国产丶欧美一区二区三区| 国产精品日产欧美久久久久| 日韩欧美高清dvd碟片|