如题,截取IP包,能否知道IP包是由什么程序产生的?并修改它再发送出去

解决方案 »

  1.   

    不清楚你的需求,可以参考一下winpcap开发包,开放源码的。
      

  2.   

    如果修改包内容,那跟具体传输协议有关
    如果TCP,有自己的检验和,算法跟IP包一样,看RFC
      

  3.   

    简单点的;
    你可以用socket(AF_INET , SOCK_RAW , IPPROTO_IP);建立一个SOCK_RAW。
    然后 setsockopt(m_sockCap, IPPROTO_IP, IP_HDRINCL, (char*)&bopt, sizeof(bopt));
    这个方法捕获的不全,不过可以做一下,学习学习!!
      

  4.   

    用raw socket只能捕获流入和流出本机的数据
      

  5.   

    呵呵~~~要把网卡地址改成模糊状态~~然后用原始套接字来接,得到的数据要自己分析~`
    至于发送除了LuckFox(小狐狸)说的还要注意校验和,这样的函数过程有现成的,可以找来
    socket(AF_INET , SOCK_RAW , IPPROTO_IP);不一定就使用它,看你想要用什么协议,icmp,tcp,udp还是有不同的,其次要弄清ip的结构,还有你要发送数据报的格式,这些都没问题了,你才能编写程序~~可以找本网络书看看,格式都有写,静下心来慢慢看~~这些都不知道
    看代码会很难受的~~~呵呵~~~~
      

  6.   

    winpcap开发包的源码哪里可得到?
      

  7.   

    请教SanPangZi(三胖子) :
    我看几本书,如:<windows网络编程><TCP/IP详解卷1>,还是了解不太多,还应该看些什么书?
      

  8.   

    TCP/IP详解卷要是看得用心点,对于协议格式应该没问题,还有协议中各个位置的作用都会理解很好,书不再多~先看看这些理解了再说~~关于源代码~~网上哪里都有~~随便都可以找~你可以边看源代码边看书~~慢慢的就理解了~~这需要过程~~呵呵~~~
      

  9.   

    winpcap开发包可以在他们的网站上得到:
    http://winpcap.polito.it/
      

  10.   

    TO:SanPangZi(三胖子)
    能介绍一下经典的网络的书么?多谢!
      

  11.   

    我也想知道。
    我需要做一个加密程序,对于客户端(PB开发)和服务器端程序来说是透明的。加密算法我知道。对SOCKET也比较了解。
    就是不知道客户端程序连接服务器使用什么端口,如果不固定的话该怎么办。
    各位大侠说应该是使用TCP/IP的底层捕获和加密呢还是该用SOCKET?
      

  12.   

    <Windows Sockets 规范及应用-Windows网络编程接口 >看看它对实现方式上有些理解,那些是针对windows操作系统的,但还是很基础,也很有启发性~呵呵`~它经不经典我不知道,反正我看起来觉得很基础,开始学的时候还是很好的一本书~~~
    关于TCP/IP的底层捕获和加密呢还是该用SOCKET那要看你对什么进行加密,是传输的数据还是
    传输后本地或者远程文件,至于ip地址和端口可以自己设的,没有必要在程序里写死,呵呵`~~
     
      

  13.   

    如果你想达到目的,只可以用SPI ,HOOK API,NDIS这些。
    其他的方法只能得到一个copy
      

  14.   

    回复人: yhqs540(后来) :如果你想达到目的,只可以用SPI ,HOOK API,NDIS这些。
    其他的方法只能得到一个copy
    --------------------------------------
    有没有好点的建议或者书籍/源码参考?
      

  15.   

    spi spi spi  spi 
    ndis ndis ndis ndis ndis