**以前のリビジョンの文書です**
dpkt
- パケット操作用。
- Python 2.7.1でビルド
- <code>python setup.py config python setup.py install</code>
- 例えば、「filenameで指定したpcapファイルのパケットを、GREでカプセル化して吐き出す」というのを適当に書くと以下のようになる。
- <code>import sys import dpkt
def ipv4addr(addr):
addrcode = [chr(int(i)) for i in addr.split('.')] return "".join(addrcode)
def main():
filename = "target.pcap"
pcr = dpkt.pcap.Reader(open(filename)) gre = dpkt.gre.GRE() ip = dpkt.ip.IP(src=ipv4addr('10.90.0.1'), dst=ipv4addr('10.90.0.2'), p=47) eth = dpkt.ethernet.Ethernet(src='\x01\x02\x03\x04\x05\x06', dst='\x05\x06\x07\x08\x09\x0a', type=dpkt.ethernet.ETH_TYPE_IP)
pcw = dpkt.pcap.Writer(open('gre_'+filename,'wb')) for ts, buf in pcr: eth_in = dpkt.ethernet.Ethernet(buf) gre.data = eth_in.data ip.sum = 0 ip.data = gre ip.len = len(ip) eth.data = ip pcw.writepkt(eth,ts) pcw.close pass
if name == 'main':
main()</code>