当前位置:  技术问答>linux和unix

分数已经不多了,这次花血本了,大家帮帮忙吧(在线等啊)~~~~

    来源: 互联网  发布时间:2015-09-29

    本文导语:  我想用raw socket发送一个字符串,这个字符串填在哪里? 是填在tcp头的“选项”里吗? | if((sockfd = socket(AF_INET,SOCK_RAW,IPPROTO_UDP))id = htons(getpid());         ip_header->ttl = ttl; /* #define IPTTL...

我想用raw socket发送一个字符串,这个字符串填在哪里?
是填在tcp头的“选项”里吗?

|
if((sockfd = socket(AF_INET,SOCK_RAW,IPPROTO_UDP))id = htons(getpid());
        ip_header->ttl = ttl; /* #define IPTTL 60;*/
        ip_header->protocol = protocol;
        ip_header->saddr = saddr.s_addr;
        ip_header->daddr = daddr.s_addr;
        ip_header->check = 0;
        ip_header->check = ((unsigned short)ip_cksum1((unsigned short *)ip_header,sizeof(struct iphdr)));
        return;
}







void build_udphdr(char *packet,unsigned short sport,unsigned short dport,unsigned short length)
{
        struct udphdr *udp;
        char *packetck = NULL;

        udp = (struct udphdr *)packet;
        udp->source = htons(sport);
        udp->dest = htons(dport);
        udp->len = htons(length);
        udp->check = 0;

        packetck = (char*)malloc(8 + sizeof(struct pseudoudp) + length - sizeof(struct udphdr));
        memset(packetck, 0, 8 + length - sizeof(struct udphdr) + sizeof(struct pseudoudp));
        psudp = (struct pseudoudp *) (packetck);
        psudp->ipdest = 0xffffffff;
        psudp->ipsource = 0;
        psudp->zero = 0;
        psudp->proto = 17;
        psudp->length = htons(8+length-sizeof(struct udphdr));
        memcpy(packetck+sizeof(struct pseudoudp), &udp, 8);
        printf("%d %drn", length, sizeof(struct udphdr));
        //memcpy(packetck+sizeof(struct pseudoudp)+8, (char*)(packet+sizeof(struct udphdr)), length-sizeof(struct udphdr));

        udp->check = 0;
        //udp->check = udp_cksum((u_short *)packetck, 8 + length - sizeof(struct udphdr) + sizeof(struct pseudoudp));
        //udp->check = (tcp_check1(packet, length, htonl(inet_addr("61.235.102.98")), htonl(inet_addr ("202.100.4.15"))));
}


这也是当时一个人的问题 帮他调了调 能用
你参考吧













|
http://bricks.diy.myrice.com/linux/program/raw-socket.txt

|
楼上的废话!

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 帮帮小女子!!我是个初学者!如果解决了!我还可以追加分数呢?
  • 大虾们,帮帮我吧!在dos下面驱动modem进行远程数据交换(不限分数)
  • 我看到大家都在讨论分数的问题,我如何看到自己的分数呢?
  • scjp考试分数线变了??
  • 欠你的分数还给你cloverplus
  • 急救!分数不是问题,就是要快!
  • 兄弟的LINUX练习问题,请帮忙,分数可以商量!
  • 谁给我传一个红帽子安装盘,分数不够再加
  • 高级问题,只邀高手,分数无限
  • 在这里,难道分数那么重要吗?为什么老是“一定给分”????大家发表一下啦!!
  • 我已经把问题分数改为100了怎么还显示20分?
  • 谁能给我在JB6中EJB开发的一个简单例子,分数不是问题
  • 关于weblogic6.0的license.愿意奉上所有的分数。
  • 刚刚把问题都节掉,分数所剩不多了
  • 人分数全给第十个回复的人
  • 大家来谈谈java语言的书写规则吧。(分数不断增加中)
  • 我第一次来,怎么送分数阿
  • 分数不封顶!请教!
  • scjp的分数怎么算的 ?61%是什么意思?不是有60道题么?怎么叫答对61%?
  • 分数太多
  • 谁能提供QA及测试方法的文档资料之类的东西,分数一定给
  • 路人甲请看这个问题。。分数随你开。。。。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3