1.c#中如何把端口转成网络字节序,比如c中的htons,HostToNetworkOrder只能转ip地址。
2.把修改ip报头的buffer[]如何发送出去,send肯定不行把,需要连接。sendto的每一种重载都要endpoint,但是我自己定义的ip头里已经有“源ip”了。怎么办。

解决方案 »

  1.   

    1.c#中如何把端口转成网络字节序
    ========================
    IPAddress.HostToNetworkOrder(port);2.把修改ip报头的buffer[]如何发送出去
    ==========================
    不知道你要实现什么效果。
      

  2.   

    楼主是想使用RAW来发送数据包?
      

  3.   

    HostToNetworkOrder是转换ip地址不是端口啊。
    楼上说得对,是靠rawsocket发送。我在ip报头里定义了32位目的ip了。用哪一个。
      

  4.   

    那个hosttonetworkorder的3种重载中只有short,int,可是需要一个ushort。端口是1到65535,short只能到32767,如果用int的就是长值了,如何完美的替代c语言中的htons.
    第二个问题。
      

  5.   

    是的,成功了。实现了伪造ip发送出syn。如果步伪造ip,目标机器就会返回一个syn ack,如果把ip头的源ip改了,就无任何返回了。目标机器就会向那个假的ip发送syn ack,如果那个假地址确实有机器,那个机器就会向目标机器返回一个rst断开,如果没有目标机器就等着了。我是在一个印度阿三的肉鸡上试的,用他运行,然后向我自己机器的80端口发送syn,然后我这里用sniffer嗅探,可以探到一堆假ip假端口向我80发送syn,然后探到我机器向假ip返回syn ack,这样不就成功了吗,但是netstat -an却看不到那些,不知怎么回事有些郁闷,是不是由于我用的路由+端口映射的原因呢?
    最后就不知道了,这种rawsocket,含ip头的是不是应该用socket.sendto,发送,虽然可以。是不是还有标准的方法呢
      

  6.   

    ddos已经作出来了,其实我最终想做的是扫描,syn扫描。其实ddos就是syn扫描的第一步,第二步就应该是截获返回的信息了吧,大姐不要光顶啊,指点一下子好吧。