# Filter

  `Filter` はパケットが、ある条件にマッチするかど うかを判定します。`Filter` は実際には `bpf_program` へのラッパーとして作られています。 フィルタの記述方法に関しては `tcpdump(1)` を参照して下さい。

## スーパークラス:

  `Object`

## クラスメソッド:

`compile(expr, capture[, optimize[, netmask]])`
`new(expr, capture[, optimize[, netmask]])`

  `Filter`オブジェクトを生成します。 expr はフィルタの文字列です。capture は `Capture` オブジェクトです。optimize で最適化を行うかどうかを制御します。 netmask によりローカルネットのネットマスク を指定します。

  生成された `Filter` は capture から取り込まれたパケットに対してのみ適用できます。

  `libpcap-0.5以降` を使用している場合には capture の部分に、以下の値を指定することもできます。

  > `[snaplen, datalink]`
  >   配列で必要なパラメータを直接与える
  > 省略 (または`nil`)
  >   Ethernetでのデフォルトとみなす (`[68, `DLT_EN10MB`]`)

## メソッド:

`self === packet`
`self =~ packet`

  packet がこのフィルタにマッチすればtrueを返 します。

`~ self`

  「 `self`ではない」という条件を表 す`Filter`を返します。

`self | other`

  「 `self`またはother 」という条件を表 す`Filter`を返します。

`self & other`

  「 `self`かつother 」という条件を表 す`Filter`を返します。

`source`

  フィルタの元となった文字列を返します。

fukusima@goto.info.waseda.ac.jp