还有~~怎样接收到别的机发来的完整ethernet包

解决方案 »

  1.   

    晕~~我不信一个都没有~~没人做过这方面的研究吗?
    或者那win32asm也行~~不一定用c#
    求高手帮帮我
      

  2.   

    >> 写了一个原始的ethernet包~~例如基于tcp的smb包,所有字节都由自己手工填充,如何发送出去?
    >> socket.send好像会在发送数据是又加上ethernet和ip报头~~用Raw Socket:
    Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Tcp);
    s.SetSocketOption(SocketOptionLevel.Ip, SocketOptionName.HeaderIncluded, 1);
    这样你可以直接在packet里面包含IP和TCP头,但是还是不能有ethernet头。>> 又或者是,能否修改tcp类生成的数据包的ethernet报头,我想使源mac地址改变
    改MAC地址? 喉喉...>> 怎样接收到别的机发来的完整ethernet包
    这些连Raw Socket也做不了了,.NET好像没办法把网卡设置到混扎模式。
    找个第三方的库吧:http://www.codeproject.com/csharp/pktcap.asp。==============================
    http://blog.joycode.com/qqchen