差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
programming:python:dpkt:start [2011/11/01 22:31]
yuki
programming:python:dpkt:start [2021/05/22 18:41]
yuki 削除
ライン 3: ライン 3:
   * パケット操作用。   * パケット操作用。
     * http://​code.google.com/​p/​dpkt/​     * http://​code.google.com/​p/​dpkt/​
 +
 +  * GRE周りがかなり怪しい実装になってる。unpackは上手く動作しないかも。
 +  * TCP/​IP,​UDP/​IP,​ICMP辺りはそれなりに動くかも。
 +  * IPv6 ESPヘッダは非対応だから、エラー吐くよ。
 +    * IPv6は拡張ヘッダ周りでバグが残ってるぽいのでdiff当てて、python setup.py installやり直し。
 +      * http://​code.google.com/​p/​dpkt/​issues/​detail?​id=67
 +    * ICMPv6は別段デコードしないデータグラムを重複して返すかもしれない。これも書きなおしかも。
 +      * http://​code.google.com/​p/​dpkt/​issues/​detail?​id=77
 +  * カプセル化されていて、そのプロトコルが実装前だけど実装するのが面倒なときは、以下のように必要部分だけstrで抜き出して処理する逃げ道もある。
 +    * <​code>​dpkt.ip.IP( str(udp.data)[4:​] )</​code>​
  
   * Python 2.7.1でビルド   * Python 2.7.1でビルド
ライン 29: ライン 39:
     eth = dpkt.ethernet.Ethernet(type=dpkt.ethernet.ETH_TYPE_IP)     eth = dpkt.ethernet.Ethernet(type=dpkt.ethernet.ETH_TYPE_IP)
     eth.src=ethaddr('​01:​02:​03:​04:​05:​06'​)     eth.src=ethaddr('​01:​02:​03:​04:​05:​06'​)
-    eth.dst=ethaddr('​07:08:09:0a:0b:0c')+    eth.dst=ethaddr('​01:02:03:04:05:07')
  
     pcw = dpkt.pcap.Writer(open('​gre_'​+filename,'​wb'​))     pcw = dpkt.pcap.Writer(open('​gre_'​+filename,'​wb'​))
ライン 37: ライン 47:
         ip.sum = 0         ip.sum = 0
         ip.data = gre         ip.data = gre
-        # ip.__len__でもいいと思うけど。 
         ip.len = len(str(ip))         ip.len = len(str(ip))
         eth.data = ip         eth.data = ip
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0