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

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

?? packet_gen.c

?? 一個使用raw socket 構造數據包的實例
?? C
?? 第 1 頁 / 共 2 頁
字號:
    return PACKET_OK;       
}        


/**********************************************************************
* 函數名稱:udpcrcCheck
* 功能描述:判斷收到的ip報文的udp校驗和是否正確
* 輸入參數:
  ipHdr    收到報文的ip頭
*  輸出參數:無
* 返 回 值:
    校驗和正確
    校驗和錯誤
* 其它說明:無
* 修改日期      版本號  修改人      修改內容
* ---------------------------------------------------------------------
* 2007/12/11             丁鵬              創建
************************************************************************/
int udpcrcCheck(struct ip *ipHdr)            
{
    unsigned short crcPacket;
    unsigned short crcCheck;
    unsigned short packet_ip_sum;
    unsigned char packet_ip_ttl;
    unsigned char packet_ip_p;
    unsigned short *pcrckBufBegin;
    
    struct udphdr  udpHdr;
    
    udpHdr = (struct udphdr *)(ipHdr + IP_HDR_LEN);
            
    packet_ip_ttl =  ipHdr->ip_ttl;           /* 8bit */
    packet_ip_p   =  ipHdr->ip_p;                /*  8bit */
    packet_ip_sum =  ntohs(udpHdr->uh_ulen);          /* 16bit  check crc */
    crcPacket     =  ntohs(udpHdr->uh_sum);
            
    printf("udpHdr->uh_ulen:%x", ntohs(udpHdr->uh_ulen));
            
    /* 偽首部初始化 */
    ipHdr->ip_ttl = 0;                          /* 8bit */
    ipHdr->ip_p   = IPPROTO_UDP;                /*  8bit */
    ipHdr->ip_sum =  ntohs(udpHdr->uh_ulen);    /* 16bit  check crc */
    ipHdr->ip_src.s_addr = inet_addr("10.16.8.51"); /* 32bit */
    ipHdr->ip_dst.s_addr = inet_addr("10.16.8.54"); /* 32bit */
            
    udpHdr->uh_sum = 0;
    pcrckBufBegin   = (unsigned short *)(&ipHdr->ip_ttl);
            
    crcCheck = checksum(pcrckBufBegin, ntohs(udpHdr->uh_ulen));
            
    if(crcCheck != crcPacket)
    {
        printf("udp crc wrong:packet(%x), (receive %x)---\n", crcPacket, crcCheck);
        return ERR_UDP_CRC_WRONG;
    }
    else
    {
        printf("udp crc :packet(%x), (receive %x)---\n", crcPacket, crcCheck);
    }
    return PACKET_OK;
}

/**********************************************************************
* 函數名稱:packetSend
* 功能描述:發送報文
* 輸入參數:
  len     發送報文長度
  pktBuf  發送報文的地址,包括eth,ip,udp頭
  ptoaddr 發送的地址
*  輸出參數:無
* 返 回 值:
    發送成功
    發送失敗    
* 其它說明:無
* 修改日期      版本號  修改人      修改內容
* ---------------------------------------------------------------------
* 2007/12/11             丁鵬              創建
************************************************************************/
int packetSend(unsigned int len, unsigned char *pktBuf, struct sockaddr_ll *ptoaddr)
{
    int sendLen = 0;
    int ret     = 0;    
    unsigned char *pSendBuf;
    
    if(NULL == pktBuf || len == 0)
    {
        return ERR_PACKET_SEND;
    } 
    pSendBuf =  pktBuf;
    sendLen  =  len;
    while(sendLen > 0)
    {
        ret = sendto(sockfd, pSendBuf, sendLen, 0, (struct sockaddr *)ptoaddr, sizeof(ptoaddr));
        if(ret < 0)
        {
            perror("sendto err");
            return ERR_PACKET_SEND;
        }
        else
        {
            sendLen -= ret;
            pSendBuf += ret;
        }
    }
    return PACKET_SEND_OK;
}                

/**********************************************************************
* 函數名稱:packetBuild
* 功能描述:構造發送到外網去的數據包
* 輸入參數:
  fib_addr     轉發規則,用來判斷要發到哪些外網口
  cmsgDatabuf  構造報文所存放的地址
  localIp      本地ip,字符串形式
  sport        發送源端口
  dport        發送目的端口
*  輸出參數:
* 返 回 值:
    構造成功
    構造失敗    
* 其它說明:無
* 修改日期      版本號  修改人      修改內容
* ---------------------------------------------------------------------
* 2007/12/11             丁鵬              創建
************************************************************************/
int packetBuild(struct fib_address *fib_addr, unsigned char *cmsgDatabuf, unsigned char *localIp, unsigned short sport, unsigned short dport)
{
    unsigned char *pktBuf;
    unsigned char *puicrckBufBegin;
    struct udphdr *udpHdr;
    struct ethhdr *ethHdr;
    unsigned char dstMac[ETH_ALEN+1]={0};
    unsigned char srcMac[ETH_ALEN+1]={0};
     
    if((NULL == fib_addr_next) || (NULL == cmsgDatabuf))
    {
        printf("packetBuild: arg err\n");
        return ERR_GENERR;
    }
    /* build send packet */
    /* build udphdr */
    pktBuf = (unsigned char *)cmsgDatabuf;
    udpHdr = (struct udphdr *)(pktBuf + uiEthHdrLen + uiIpHdrLen);
    UdpHdrGen(udpHdr, dport, sport, msgDataLen);
    /* builde iphdr */       
    psDstAddr = inet_ntoa(fib_addr->ip_dst);
    psSrcAddr = LocalIp;
    ipHdr = (struct ip *)(pktBuf + sizeof(struct ethhdr));
    ipHdr->ip_ttl = 0;                        /* 8bit */
    ipHdr->ip_p = IPPROTO_UDP;                /*  8bit */
    ipHdr->ip_sum = udpHdr->uh_ulen;           /* 16bit  check crc */
    ipHdr->ip_src.s_addr = inet_addr(psSrcAddr); /* 32bit */
    ipHdr->ip_dst.s_addr = inet_addr(psDstAddr); /* 32bit */
    
    
    puicrckBufBegin = (unsigned short *)&(ipHdr->ip_ttl);
    udpHdr->uh_sum  = checksum(puicrckBufBegin, msgDataLen + FAKE_IP_HEAD + 8);
    if (0 == udpHdr->uh_sum) 
    {
        udpHdr->uh_sum = 0xffff;
    }
    IpHdrGen(ipHdr, psDstAddr, psSrcAddr, msgDataLen, IPPROTO_UDP);
              
    /* build ethhdr */
    ret = getMac(psDstAddr, dstMac);
    if(ret == 0)
    {
        printf("no %s mac , err\n", dstMac);
        return ERR_GENERR;
    }
    printf("dst ret:%d\n",ret);
    dstMac[ETH_ALEN+1]='\0';
    ret = getMac(psSrcAddr, srcMac);
    if(ret == 0)
    {
        printf("no %s mac , err\n", srcMac);
        return ERR_GENERR;
    }
    srcMac[ETH_ALEN+1]='\0';
    psrcMac=&srcMac[0];
    pdstMac=&dstMac[0];
    
    ethHdr = (struct ethhdr *)pktBuf;
    ethHdrGen(ethHdr, dstMac, srcMac);
}


/**********************************************************************
* 函數名稱:Handle_Externel
* 功能描述:處理對應外網規則的數據包
* 輸入參數:
  pfib_rule     轉發規則,用來判斷要發到哪些外網口
  cmsgDatabuf   發送報文所存放的地址
  ptoaddr      發送的地址
  msgLen        發送消息體長度 包括eth,ip,udp頭
*  輸出參數:
* 返 回 值:
    處理成功
    處理失敗    
* 其它說明:無
* 修改日期      版本號  修改人      修改內容
* ---------------------------------------------------------------------
* 2007/12/11             丁鵬              創建
************************************************************************/
int Handle_Externel(FIB_RULE  *pfib_rule, unsigned char *cmsgDatabuf, struct sockaddr_ll *ptoaddr, unsigned int msgLen)
{
    struct fib_address *fib_addr_next;
    if((NULL == pfib_rule) || (NULL == cmsgDatabuf))
    {
        printf("Handle_Externel: arg err\n");
        return ERR_GENERR;
    }
    
    /* 遍歷發送的目的地 */
    fib_addr_next = pfib_rule->pdstaddr;
    while(fib_addr_next != NULL)             
    {  
        /* build send packet */
        if(packetBuild(fib_addr_next, cmsgDatabuf, localIp, 100000, 10001) < 0)
        {
            continue;
        }
        /* send to the paket*/
        memset(&toaddr,0,sizeof(toaddr));
        ptoaddr->sll_family   = AF_PACKET;
        ptoaddr->sll_ifindex  = ifr.ifr_ifindex;  
        ptoaddr->sll_protocol = htons(ETH_P_ALL);
        ptoaddr->sll_halen   = 6;
         
        ptoaddr->sll_addr[0] = 0x00;
        ptoaddr->sll_addr[1] = 0x15;
        ptoaddr->sll_addr[2] = 0x58;
        ptoaddr->sll_addr[3] = 0x12;
        ptoaddr->sll_addr[4] = 0x9E;
        ptoaddr->sll_addr[5] = 0x5E;
           
        if(packetSend(msgLen, cmsgDatabuf, ptoaddr) < 0)
        {
           continue;
        }
        fib_addr_next = fib_addr_next->next;
    }    /*end while  */
    return PACKET_OK;      
}     




/**********************************************************************
* 函數名稱:Handle_Internel
* 功能描述:處理對應外網規則的數據包
* 輸入參數:
  pfib_rule     轉發規則,用來判斷要發到哪些內網口
  udpHdr       內網口只需處理udp頭及udp負荷
*  輸出參數:
* 返 回 值:
    處理成功
    處理失敗    
* 其它說明:無
* 修改日期      版本號  修改人      修改內容
* ---------------------------------------------------------------------
* 2007/12/11             丁鵬              創建
************************************************************************/
int Handle_Internel(FIB_RULE  *pfib_rule, struct udphdr *udpHdr)
{
    struct fib_address *fib_addr_next;
    unsigned char       filename[20];
    int    fd;

    memset(filename, 0x00, 20)
    /* 遍歷發送的目的地 */
    fib_addr_next = pfib_rule->pdstaddr;
    while(fib_addr_next != NULL)             
    {  
        if(getfilename(fib_addr_next->chipnum, &filename) == 0)
        { 
            printf("no that 8360 chip \n");
            continue;
        }
        else
        { 
            fd = open(filename, O_RDWR | O_APPEND);
            udpHdr = (struct udphdr *)pktBuf;
            /*write file */
            write(fd, udpHdr, ntohs(udpHdr->uh_ulen));
            close(fd);
        } /*end getfile name */
        fib_addr_next = fib_addr_next->next;
    }/* end while  */
    return PACKET_OK;  
}    
            

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费性生活视频播放| 日韩专区一卡二卡| 午夜精品福利久久久| 国产福利91精品一区| 欧美亚洲综合久久| 欧美国产一区在线| 蜜桃精品视频在线| 在线欧美日韩国产| 国产精品国产自产拍在线| 激情综合一区二区三区| 777亚洲妇女| 亚洲主播在线观看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美成人bangbros| 亚洲在线视频免费观看| 风流少妇一区二区| 久久久亚洲精品石原莉奈| 三级一区在线视频先锋 | 狠狠色丁香久久婷婷综| 欧美在线一二三| 亚洲日本免费电影| av电影在线观看完整版一区二区| 日韩女优制服丝袜电影| 午夜成人在线视频| 欧洲一区在线电影| 洋洋av久久久久久久一区| 99re在线精品| 国产精品久久久久久久裸模| 国产麻豆精品久久一二三| 欧美日韩成人在线| 亚洲成年人影院| 色94色欧美sute亚洲线路一ni| 国产精品久久久久aaaa樱花 | 狠狠色狠狠色综合日日91app| 91精品国产综合久久精品图片| 亚洲国产欧美日韩另类综合 | 美国十次了思思久久精品导航| 欧美日韩1区2区| 亚洲成av人片www| 欧美久久一二区| 人人狠狠综合久久亚洲| 精品福利av导航| 国产另类ts人妖一区二区| 久久久噜噜噜久噜久久综合| 久草热8精品视频在线观看| 精品国产精品网麻豆系列| 激情成人综合网| 日本一区二区三区在线不卡| 成人污视频在线观看| 中文字幕综合网| 精品视频在线视频| 久久99精品久久久久久动态图 | 精品国产一区二区三区不卡| 国产一区二区久久| 亚洲视频 欧洲视频| 欧美亚洲国产一区二区三区| 天天色 色综合| 久久色.com| 92国产精品观看| 午夜精品123| 国产视频一区二区在线| 91视视频在线观看入口直接观看www| 亚洲精品成a人| 日韩一区二区免费在线观看| 丁香网亚洲国际| 亚洲一区二区中文在线| 精品国产凹凸成av人网站| 成人aaaa免费全部观看| 亚洲h在线观看| 久久精品在这里| 欧美欧美午夜aⅴ在线观看| 国内精品自线一区二区三区视频| 亚洲欧洲综合另类| 欧美tickling网站挠脚心| 波多野结衣的一区二区三区| 天使萌一区二区三区免费观看| 久久在线观看免费| 欧日韩精品视频| 国产美女一区二区三区| 午夜精品免费在线观看| 中文字幕免费不卡| 91精品国产一区二区三区香蕉| 成人午夜av在线| 久久国产尿小便嘘嘘| 一区二区三区中文免费| 国产欧美一区二区精品性色超碰| 3d动漫精品啪啪1区2区免费| aaa国产一区| 激情五月播播久久久精品| 夜夜嗨av一区二区三区网页| 国产午夜亚洲精品理论片色戒| 制服视频三区第一页精品| 97久久精品人人澡人人爽| 韩国毛片一区二区三区| 日韩vs国产vs欧美| 亚洲欧美偷拍三级| 亚洲国产高清aⅴ视频| 日韩女优电影在线观看| 欧美性大战久久| 99久久精品国产精品久久| 国产成人精品影视| 激情综合色综合久久综合| 日韩成人精品在线| 亚洲图片欧美色图| 亚洲综合激情小说| 最新日韩av在线| 国产精品久久看| 欧美激情资源网| 久久久久久久久伊人| 精品久久久久久久久久久院品网| 91精品国产综合久久久久久漫画| 欧美日韩国产综合一区二区| 欧美性大战久久久久久久蜜臀| 色狠狠综合天天综合综合| 99re热这里只有精品免费视频 | 欧美在线观看一二区| 色综合久久六月婷婷中文字幕| jlzzjlzz亚洲日本少妇| 成人免费高清视频在线观看| 丁香激情综合国产| 成人免费av资源| 99久久婷婷国产综合精品电影| 成人国产精品免费观看| eeuss鲁一区二区三区| 99久久精品国产导航| 91浏览器打开| 91福利在线观看| 欧美日韩精品一区二区三区蜜桃| 欧美另类videos死尸| 欧美欧美欧美欧美| 精品美女一区二区| 国产日韩影视精品| 亚洲色图在线视频| 一二三区精品福利视频| 日韩av高清在线观看| 久久成人综合网| 成人av综合在线| 91丨porny丨国产| 91精品国产综合久久久蜜臀图片| 精品欧美乱码久久久久久| 国产欧美一区二区三区鸳鸯浴| 综合久久综合久久| 亚洲电影视频在线| 久久国内精品视频| 97久久精品人人做人人爽50路| 欧美日韩亚洲综合在线| 日韩免费福利电影在线观看| 国产精品色在线| 五月综合激情日本mⅴ| 精品一区二区三区av| 91在线无精精品入口| 91精品国产91综合久久蜜臀| 国产偷国产偷亚洲高清人白洁| 亚洲色欲色欲www| 久久国产精品无码网站| 91视频国产资源| 日韩欧美一级二级| 综合久久久久久久| 蜜臀久久久99精品久久久久久| av在线一区二区三区| 日韩精品资源二区在线| 日韩毛片视频在线看| 久久99精品国产麻豆婷婷洗澡| 91久久精品一区二区三| 欧美精品一区二区三区蜜桃| 亚洲欧美成aⅴ人在线观看| 麻豆一区二区三| 日本高清视频一区二区| 久久久久99精品国产片| 亚洲综合一区在线| 成人激情黄色小说| 欧美变态凌虐bdsm| 亚洲午夜一区二区| 99精品视频在线观看| 久久综合九色综合欧美就去吻| 亚洲一级二级在线| 91在线播放网址| 国产欧美综合在线| 国内成+人亚洲+欧美+综合在线| 欧美视频精品在线观看| 国产精品久久久久影院| 国产精品一区久久久久| 欧美一级在线观看| 图片区日韩欧美亚洲| 91极品视觉盛宴| 亚洲欧洲精品成人久久奇米网| 国产美女在线精品| 国产欧美一区二区精品性色 | 亚洲一区av在线| 99久久精品费精品国产一区二区| 欧美精品一区二区三| 日本亚洲欧美天堂免费| 欧美日韩在线播| 香蕉成人啪国产精品视频综合网| 91女神在线视频| 亚洲激情六月丁香| 色综合久久综合网欧美综合网| 亚洲四区在线观看| 色屁屁一区二区| 亚洲午夜私人影院|