利用pypcap、dpkt和pylibnet轻松实现网络捉包、网络包分析和网络包修改

        最近利用python做一个网络捉包、包分析、包重写修改的程序。因为要修改捉到的TCP包、涉及修改链路层的包(以太网),用到了pylibnet库。

 

一、pypcap捉包并用dpkt组成对象。

        pc = pcap.pcap('eth0', 65535, True, False)

        pc.setfilter('tcp port 80'')

        for ts, pkt in self.pc:
                Eth = dpkt.ethernet.Ethernet(pkt)        //在python环境下,利用dir和help可查看到dpkt的很多有用、详细的用法。

 

二、pylibnet修改低层网络包。

        pylibnet提供了很多有用的接口来修改低层包,例如TCP、ethernet都可很容易修改。

        注意:pylibnet2.0存在一个bug,在修改TCP的序列号时,不是默认的无符号整数,会导致溢出错误,pylibnet3.0没这问题。

你可能感兴趣的:(Python,网络,python,tcp)