亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1238 | 回復(fù): 0
打印 上一主題 下一主題

[C++] 發(fā)送原始套接字問題? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-11-05 12:14 |只看該作者 |倒序?yàn)g覽
以下是代碼部分,執(zhí)行沒問題,就是用tcpdump -i any -nn dst port 6666 命令無法抓取到數(shù)據(jù),請幫忙解決?

int socketfd = socket(AF_INET,SOCK_RAW,IPPROTO_RAW);
        bool flag = true;
    setsockopt(socketfd,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag));
        struct tcp_hdr  tcpheader;
        struct ip_hdr   ipheader;
        struct eth_hdr  etheader;
    //填充IP首部
        ipheader.ip_v = 4;
        ipheader.ip_hl = (4 << 4 | sizeof(struct ip_hdr)/sizeof(unsigned long));
        ipheader.ip_tos = 0;
        ipheader.ip_len = htons(sizeof(tcpheader)+sizeof(ipheader)+istrlen );
        ipheader.ip_id = 0;
        ipheader.ip_off = 0 ;
        ipheader.ip_ttl = 128;
        ipheader.ip_p = IPPROTO_TCP;
        ipheader.ip_sum = 0;
        ipheader.ip_src = inet_addr(szSrcIP);
        ipheader.ip_dst = inet_addr(szDesIp);
        unsigned short IpBuf[128] = {0};
        memcpy( IpBuf,&ipheader,sizeof(ipheader) );
        ipheader.ip_sum = in_cksum( IpBuf,sizeof(ipheader) );
         //填充TCP首部
        tcpheader.th_sport = htons(uSrcPort);
        tcpheader.th_dport = htons(uDesPort);
        tcpheader.th_seq = 0;
        tcpheader.th_ack = 0;
        tcpheader.th_off = ( sizeof(tcpheader)/sizeof(unsigned long) << 4 | 0 );
        tcpheader.th_x2 = 0;
        tcpheader.th_flags = 2;//實(shí)現(xiàn)不同的標(biāo)志位探測,2是syn 1是fin 16是ack
        tcpheader.th_win = htons((unsigned short)12345);
        tcpheader.th_sum = 0;
        tcpheader.th_urp = 0;
        unsigned short TcpBuf[128] = {0};       
        memcpy( TcpBuf, &tcpheader, sizeof(tcpheader) );
        tcpheader.th_sum = ip_in_cksum(&ipheader,TcpBuf,sizeof(tcpheader)/*+sizeof(szMsg)*/ );
        //填充鏈路層包
        unsigned char cSrcMac[] = {0x00,0x0C,0x29,0x3C,0X66,0XA1};
        unsigned char cDesMac[] = {0X48,0X5b,0X39,0X17,0X3c,0Xac};
        memcpy(&etheader.eth_dst,cDesMac,sizeof(cDesMac));
        memcpy(&etheader.eth_src,cSrcMac,sizeof(cSrcMac));
        etheader.eth_type= htons(0X0800);
        char send_buf[128]={0};
        memcpy( send_buf,&etheader,sizeof(etheader) );
        memcpy( send_buf + sizeof(etheader), &ipheader,sizeof(ipheader) );
        memcpy( send_buf + sizeof(etheader) + sizeof(ipheader), &tcpheader, sizeof(tcpheader) );
//        memcpy( send_buf + sizeof(etheader) + sizeof(ipheader) + sizeof(tcpheader),szMsg,sizeof(szMsg) );
        int datasize = sizeof(etheader) + sizeof(ipheader)+sizeof(tcpheader)/*+sizeof(szMsg)*/;
        struct sockaddr_in srAddr = {0};
        srAddr.sin_family = AF_INET;
        srAddr.sin_addr.s_addr = inet_addr(szDesIp);
        srAddr.sin_port = htons(uDesPort);               
        int rect = sendto(socketfd,send_buf,datasize,0,(struct sockaddr*)&srAddr,sizeof(srAddr));
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP