ruby-pcap 0.7.8 → 0.7.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +13 -0
- data/ChangeLog +106 -0
- data/README.ja.md +44 -0
- data/{README → README.md} +16 -20
- data/Rakefile +6 -0
- data/doc-ja/Capture.html +37 -37
- data/doc-ja/Dumper.html +13 -13
- data/doc-ja/Filter.html +29 -29
- data/doc-ja/ICMPPacket.html +39 -39
- data/doc-ja/IPAddress.html +9 -9
- data/doc-ja/IPPacket.html +19 -19
- data/doc-ja/Packet.html +20 -20
- data/doc-ja/Pcap.html +17 -17
- data/doc-ja/PcapError.html +2 -2
- data/doc-ja/Pcaplet.html +25 -25
- data/doc-ja/TCPPacket.html +19 -19
- data/doc-ja/TruncatedPacket.html +3 -3
- data/doc-ja/UDPPacket.html +10 -10
- data/doc-ja/index.html +9 -9
- data/ext/{Pcap.c → pcap/Pcap.c} +3 -3
- data/ext/{extconf.rb → pcap/extconf.rb} +0 -0
- data/ext/{icmp_packet.c → pcap/icmp_packet.c} +0 -0
- data/ext/{ip_packet.c → pcap/ip_packet.c} +0 -0
- data/ext/{packet.c → pcap/packet.c} +0 -0
- data/ext/{ruby_pcap.h → pcap/ruby_pcap.h} +0 -0
- data/ext/{tcp_packet.c → pcap/tcp_packet.c} +0 -0
- data/ext/{udp_packet.c → pcap/udp_packet.c} +0 -0
- data/lib/pcap/packet.rb +69 -0
- data/lib/{pcaplet.rb → pcap/pcaplet.rb} +14 -11
- data/lib/pcap/tcpdump_time_format.rb +10 -0
- data/lib/pcap_misc.rb +2 -78
- data/ruby-pcap.gemspec +6 -3
- metadata +41 -28
- data/MANIFEST +0 -47
- data/README.ja +0 -50
- data/VERSION +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 913aacfd45979834125fde75053c925015ee8b45
|
4
|
+
data.tar.gz: 97499258d1aa138e73950474e439f9ec538a8aa2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ee7bca3fd1b84ccf63ba4e008a770f80e561b7eab224de77f3c6406963e302a4a737f06aebbda7d048b4269117d79babd30991a31fb31ae406bbd7296f6b4e2f
|
7
|
+
data.tar.gz: f4c6a018d754462db3f34ab5006ad5cb0a910a7bda315248f0352f0acf727eb34de29f49e32035085ba44b557e7489d473312208deb49fc5971e3b0b4f59e2d2
|
data/.travis.yml
ADDED
data/ChangeLog
CHANGED
@@ -1,3 +1,109 @@
|
|
1
|
+
2015-05-24 Shintaro Kojima <goodies@codeout.net>
|
2
|
+
|
3
|
+
* version 0.7.8 released.
|
4
|
+
|
5
|
+
* Ruby 2.2 support
|
6
|
+
|
7
|
+
2012-12-06 Marcus Barczak <mbarczak@etsy.com>
|
8
|
+
|
9
|
+
* version 0.7.7 released.
|
10
|
+
|
11
|
+
* Migrate packaging from jeweller to bundler
|
12
|
+
|
13
|
+
2012-01-20 Pedro Navajas <pnavajas@nosolosoftware.biz>
|
14
|
+
|
15
|
+
* Modified pcap.c: new method returning the file descriptor
|
16
|
+
|
17
|
+
2011-06-11 Tim Jarratt <tjarratt@gmail.com>
|
18
|
+
|
19
|
+
* Improve performance during capture and makes the gem work on any OS with ruby 1.9.*
|
20
|
+
|
21
|
+
2011-06-10 Ilya Maykov <ilyam@ooyala.com>
|
22
|
+
|
23
|
+
* Don't do TRAP_BEG / TRAP_END on any version of Ruby 1.9.
|
24
|
+
|
25
|
+
2011-06-09 Ilya Maykov <ilyam@ooyala.com>
|
26
|
+
|
27
|
+
* version 0.7.6 released.
|
28
|
+
|
29
|
+
* Make the trap / don't trap decision at gem installation time, as it's always based on RUBY_PLATFORM + RUBY_VERSION
|
30
|
+
which are known at that time.
|
31
|
+
Removed the shouldnt_trap argument from Pcap::Capture#dispatch and Pcap::Capture#loop, no longer needed.
|
32
|
+
Cache the duplicated variable in Pcap::Pcaplet#each_packet so we don't compute it each time.
|
33
|
+
And some minor code cleanup here and there.
|
34
|
+
|
35
|
+
2011-06-07 Tim Jarratt <tjarratt@nearbuysystems.com>
|
36
|
+
|
37
|
+
* Only log "packets received / packets dropped" when a specific flag is passed in.
|
38
|
+
|
39
|
+
2011-05-31 Tim Jarratt <tjarratt@nearbuysystems.com>
|
40
|
+
|
41
|
+
* version 0.7.5 released.
|
42
|
+
|
43
|
+
* Added source, destination mac address methods to TCP Packet.
|
44
|
+
|
45
|
+
2011-05-30 Tim Jarratt <tjarratt@nearbuysystems.com>
|
46
|
+
|
47
|
+
* Fixes to make this gem run with ruby 1.9.2@p180 on Mac OS X 10.6.7.
|
48
|
+
|
49
|
+
2011-02-17 Andrew Hobson <ahobson@damballa.com>
|
50
|
+
|
51
|
+
* version 0.7.4 released.
|
52
|
+
|
53
|
+
* Add support for recalculating the ip checksum.
|
54
|
+
Automatically do so if changing the source or dest IP
|
55
|
+
|
56
|
+
2011-02-03 Eric Tamme <etamme@gmail.com>
|
57
|
+
|
58
|
+
* Fixed STR2CSTR issue for ruby 1.9.2
|
59
|
+
|
60
|
+
2010-12-02 Andrew Hobson <ahobson@damballa.com>
|
61
|
+
|
62
|
+
* version 0.7.3 released.
|
63
|
+
|
64
|
+
* Update for newest version of libpcap
|
65
|
+
|
66
|
+
2010-09-27 Andrew Hobson <ahobson@damballa.com>
|
67
|
+
|
68
|
+
* version 0.7.2 released.
|
69
|
+
|
70
|
+
* Use the proper RSTRING macros. This appears to get ruby 1.9 working
|
71
|
+
|
72
|
+
2010-06-07 Andrew Hobson <ahobson@damballa.com>
|
73
|
+
|
74
|
+
* version 0.7.1 released.
|
75
|
+
|
76
|
+
* Fix assignment of packet timestamp and bump version
|
77
|
+
|
78
|
+
2009-06-06 Roman Shterenzon <roman.shterenzon@gmail.com>
|
79
|
+
|
80
|
+
* version 0.7.0 released.
|
81
|
+
|
82
|
+
* Convert to rubygem
|
83
|
+
|
84
|
+
2009-05-26 Andrew Hobson <ahobson@macguffin.infloop.com>
|
85
|
+
|
86
|
+
* Allow modifying the src and dst IPs
|
87
|
+
|
88
|
+
2009-05-12 Andrew Hobson <ahobson@macguffin.infloop.com>
|
89
|
+
|
90
|
+
* Allow changing the time on a packet
|
91
|
+
|
92
|
+
2008-12-22 Andrew Hobson <ahobson@macguffin.local>
|
93
|
+
|
94
|
+
* Fix warning in 1.8.6.
|
95
|
+
Submitted-By: xHire
|
96
|
+
|
97
|
+
2008-11-24 Andrew Hobson <ahobson@macguffin.infloop.com>
|
98
|
+
|
99
|
+
* Add support for opening dead pcaps
|
100
|
+
The plan is to support dumping created packets to files and
|
101
|
+
using pcap_inject
|
102
|
+
|
103
|
+
* Apply patches from debian
|
104
|
+
|
105
|
+
* Add support for dumping a raw packet
|
106
|
+
|
1
107
|
2000-08-13 Masaki Fukushima <fukusima@goto.info.waseda.ac.jp>
|
2
108
|
|
3
109
|
* version 0.6 released.
|
data/README.ja.md
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
## ruby-pcap
|
2
|
+
|
3
|
+
[![Build Status](https://travis-ci.org/codeout/ruby-pcap.svg?branch=ruby-pcap-gem)](https://travis-ci.org/codeout/ruby-pcap)
|
4
|
+
|
5
|
+
ruby-pcap は Ruby から LBL の libpcap (Packet Capture library) へアク
|
6
|
+
セスするための拡張ライブラリです。TCP/IPのヘッダの情報にアクセスするた
|
7
|
+
めのクラスも含んでいます。
|
8
|
+
|
9
|
+
## インストール
|
10
|
+
|
11
|
+
```
|
12
|
+
gem install ruby-pcap
|
13
|
+
```
|
14
|
+
|
15
|
+
### 必要なもの
|
16
|
+
|
17
|
+
* ruby-1.9.3以上
|
18
|
+
* 古いバージョンでも動くかもしれませんが、テストされていません
|
19
|
+
* libpcap (http://www.tcpdump.org/)
|
20
|
+
|
21
|
+
## 使い方
|
22
|
+
|
23
|
+
doc および doc-ja ディレクトリ以下にあるファイルを見て下さい。
|
24
|
+
examples ディレクトリに簡単なサンプルスクリプトがあります。
|
25
|
+
|
26
|
+
## 作者
|
27
|
+
|
28
|
+
福嶋正機 <fukusima@goto.info.waseda.ac.jp>
|
29
|
+
|
30
|
+
## メンテナー
|
31
|
+
|
32
|
+
Marcus Barczak <mbarczak@etsy.com>
|
33
|
+
|
34
|
+
## 著作権表示
|
35
|
+
|
36
|
+
ruby-pcapは福嶋正機が著作権を保持する free software です。
|
37
|
+
|
38
|
+
ruby-pcapはGPL(GNU GENERAL PUBLIC LICENSE)に従って再配布または
|
39
|
+
変更することができます。GPLについてはCOPYINGファイルを参照して
|
40
|
+
ください。
|
41
|
+
|
42
|
+
ruby-pcapは無保証です。作者はruby-pcapのバグなどから発生する
|
43
|
+
いかなる損害に対しても責任を持ちません。詳細については GPL を
|
44
|
+
参照してください。
|
data/{README → README.md}
RENAMED
@@ -1,40 +1,36 @@
|
|
1
|
-
|
1
|
+
## ruby-pcap
|
2
|
+
|
3
|
+
[![Build Status](https://travis-ci.org/ickymettle/ruby-pcap.svg)](https://travis-ci.org/ickymettle/ruby-pcap)
|
2
4
|
|
3
5
|
ruby-pcap is a ruby extension to LBL libpcap (Packet Capture library).
|
4
6
|
This library also includes classes to access TCP/IP header.
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
Requirements:
|
9
|
-
|
10
|
-
- ruby-1.8.x or ruby-1.9.2
|
11
|
-
- libpcap (http://www.tcpdump.org/)
|
8
|
+
## Installation
|
12
9
|
|
13
|
-
|
10
|
+
```
|
11
|
+
gem install ruby-pcap
|
12
|
+
```
|
14
13
|
|
15
|
-
|
16
|
-
following commands will install ruby-pcap.
|
14
|
+
### Requirements
|
17
15
|
|
18
|
-
|
19
|
-
|
16
|
+
* ruby-1.9.3 or higher
|
17
|
+
* May work with older ruby version but not being tested
|
18
|
+
* libpcap (http://www.tcpdump.org/)
|
20
19
|
|
21
|
-
|
20
|
+
## Usage
|
22
21
|
|
23
22
|
See the documentation under the directory 'doc'.
|
24
23
|
Directory 'examples' contains some simple scripts.
|
25
24
|
|
26
|
-
|
25
|
+
## Author
|
27
26
|
|
28
27
|
Masaki Fukushima <fukusima@goto.info.waseda.ac.jp>
|
29
28
|
|
30
|
-
|
31
|
-
Andrew Hobson <ahobson@gmail.com>
|
29
|
+
## Maintained by
|
32
30
|
|
33
|
-
|
34
|
-
Tim Jarratt <tjarratt@gmail.com>
|
31
|
+
Marcus Barczak <mbarczak@etsy.com>
|
35
32
|
|
36
|
-
|
37
|
-
Ilya Maykov
|
33
|
+
## Copyright
|
38
34
|
|
39
35
|
ruby-pcap is copyrighted free software by Masaki Fukushima.
|
40
36
|
|
data/Rakefile
CHANGED
data/doc-ja/Capture.html
CHANGED
@@ -8,52 +8,52 @@
|
|
8
8
|
<DT><H1>Capture</H1></DT>
|
9
9
|
<DD>
|
10
10
|
|
11
|
-
|
11
|
+
パケットキャプチャを表すオブジェクト
|
12
12
|
</DD>
|
13
|
-
<DT><H2
|
13
|
+
<DT><H2>スーパークラス:</H2></DT>
|
14
14
|
<DD><DL><DT><A HREF="http://www.ruby-lang.org/ja/man-1.4/Object.html"><CODE>Object</CODE></A></DT></DL></DD>
|
15
|
-
<DT><H2
|
15
|
+
<DT><H2>インクルードしているモジュール:</H2></DT>
|
16
16
|
<DL>
|
17
17
|
<DT><A HREF="http://www.ruby-lang.org/ja/man-1.4/Enum.html"><CODE>Enumerable</CODE></A></DT>
|
18
18
|
</DL>
|
19
|
-
<DT><H2
|
19
|
+
<DT><H2>クラスメソッド:</H2></DT>
|
20
20
|
<DL COMPACT>
|
21
21
|
<DT>
|
22
22
|
<A NAME=".open_live"><CODE>open_live(<var>device</var>[, <var>snaplen</var>[, <var>promisc</var>[, <var>to_ms</var>]]])</CODE></A>
|
23
23
|
<DD>
|
24
24
|
<p>
|
25
25
|
|
26
|
-
|
27
|
-
|
26
|
+
デバイスをオープンして <CODE>Capture</CODE> オブジェクトを返
|
27
|
+
します。
|
28
28
|
<VAR>snaplen</VAR>, <VAR>promisc</VAR>,
|
29
|
-
<VAR>to_ms</VAR>
|
30
|
-
<CODE>true</CODE>, 1000
|
29
|
+
<VAR>to_ms</VAR> のデフォルト値はそれぞれ 68 オクテット,
|
30
|
+
<CODE>true</CODE>, 1000 ミリ秒です。
|
31
31
|
</p>
|
32
32
|
<DT>
|
33
33
|
<A NAME=".open_offline"><CODE>open_offline(<var>filename</var>)</CODE></A>
|
34
34
|
<DD>
|
35
35
|
<p>
|
36
36
|
|
37
|
-
<VAR>filename</VAR>
|
38
|
-
<CODE>Capture</CODE
|
37
|
+
<VAR>filename</VAR> で指定されたファイルをオープンして
|
38
|
+
<CODE>Capture</CODE>オブジェクトを返します。
|
39
39
|
</p>
|
40
40
|
</DL>
|
41
|
-
<DT><H2
|
41
|
+
<DT><H2>メソッド:</H2></DT>
|
42
42
|
<DL COMPACT>
|
43
43
|
<DT>
|
44
44
|
<A NAME="close"><CODE>close</CODE></A>
|
45
45
|
<DD>
|
46
46
|
<p>
|
47
47
|
|
48
|
-
<CODE>Capture</CODE
|
48
|
+
<CODE>Capture</CODE>オブジェクトをクローズします。
|
49
49
|
</p>
|
50
50
|
<DT>
|
51
51
|
<A NAME="datalink"><CODE>datalink</CODE></A>
|
52
52
|
<DD>
|
53
53
|
<p>
|
54
54
|
|
55
|
-
|
56
|
-
(<A HREF="Pcap.html#::DLT_EN10MB"><CODE>DLT_EN10MB</CODE></A>
|
55
|
+
データリンクのタイプを表す整数を返します。
|
56
|
+
(<A HREF="Pcap.html#::DLT_EN10MB"><CODE>DLT_EN10MB</CODE></A> 等)
|
57
57
|
</p>
|
58
58
|
<DT>
|
59
59
|
<A NAME="dispatch"><CODE>dispatch([<var>count</var>]) {|<var>packet</var>|...}</CODE></A>
|
@@ -62,18 +62,18 @@
|
|
62
62
|
|
63
63
|
<P>
|
64
64
|
|
65
|
-
|
66
|
-
<A HREF="Packet.html"><CODE>Packet</CODE></A
|
65
|
+
各パケットに対して繰り返します。ブロックには
|
66
|
+
<A HREF="Packet.html"><CODE>Packet</CODE></A>かそのサブクラスのインスタンスが渡されます。
|
67
67
|
</P>
|
68
68
|
|
69
69
|
<P>
|
70
70
|
|
71
|
-
<VAR>count</VAR>
|
72
|
-
<VAR>count</VAR>
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
<VAR>count</VAR>
|
71
|
+
<VAR>count</VAR> には処理するパケットの最大数を指定します。
|
72
|
+
<VAR>count</VAR> に -1 を指定するとバッファに入っているパ
|
73
|
+
ケット全てを処理します。<VAR>count</VAR> に 0 を指定すると
|
74
|
+
エラーかファイルの終わりかタイムアウトに達するまでパケット
|
75
|
+
を処理します。
|
76
|
+
<VAR>count</VAR> のデフォルト値は -1 です。
|
77
77
|
</P>
|
78
78
|
|
79
79
|
</p>
|
@@ -90,16 +90,16 @@
|
|
90
90
|
|
91
91
|
<P>
|
92
92
|
|
93
|
-
|
94
|
-
<A HREF="Packet.html"><CODE>Packet</CODE></A
|
93
|
+
各パケットに対して繰り返します。ブロックには
|
94
|
+
<A HREF="Packet.html"><CODE>Packet</CODE></A>かそのサブクラスのインスタンスが渡されます。
|
95
95
|
</P>
|
96
96
|
|
97
97
|
<P>
|
98
98
|
|
99
|
-
<VAR>count</VAR>
|
100
|
-
<VAR>count</VAR>
|
101
|
-
|
102
|
-
|
99
|
+
<VAR>count</VAR> には処理するパケットの最大数を指定します。
|
100
|
+
<VAR>count</VAR> に負の数を指定するとエラーかファイルの終わ
|
101
|
+
りに達するまでパケットを処理します。<VAR>count</VAR> のデフォ
|
102
|
+
ルト値は -1 です。
|
103
103
|
</P>
|
104
104
|
|
105
105
|
</p>
|
@@ -111,29 +111,29 @@
|
|
111
111
|
<DD>
|
112
112
|
<p>
|
113
113
|
|
114
|
-
snapshot
|
114
|
+
snapshot の長さを返します。
|
115
115
|
</p>
|
116
116
|
<DT>
|
117
117
|
<A NAME="setfilter"><CODE>setfilter(<var>filter</var>[, <var>optimize</var>])</CODE></A>
|
118
118
|
<DD>
|
119
119
|
<p>
|
120
120
|
|
121
|
-
<VAR>filter</VAR>
|
122
|
-
|
123
|
-
<VAR>optimize</VAR>
|
124
|
-
|
125
|
-
<CODE>true</CODE>
|
121
|
+
<VAR>filter</VAR> で指定された文字列、または<A HREF="Filter.html"><CODE>Filter</CODE></A>を
|
122
|
+
フィルタとして設定します。
|
123
|
+
<VAR>optimize</VAR> が <CODE>true</CODE> の場合は最適化を行
|
124
|
+
います。<VAR>optimize</VAR> のデフォルト値は
|
125
|
+
<CODE>true</CODE> です。
|
126
126
|
</p>
|
127
127
|
<DT>
|
128
128
|
<A NAME="stats"><CODE>stats</CODE></A>
|
129
129
|
<DD>
|
130
130
|
<p>
|
131
131
|
|
132
|
-
|
133
|
-
|
132
|
+
パケットキャプチャについての統計を含む <A HREF="http://www.ruby-lang.org/ja/man-1.4/Struct.html"><CODE>Struct</CODE></A>
|
133
|
+
を返します。構造体は以下のメンバを持ちます。
|
134
134
|
<BLOCKQUOTE>
|
135
135
|
<DL COMPACT>
|
136
|
-
<DT><CODE>recv</CODE></DT><DD
|
136
|
+
<DT><CODE>recv</CODE></DT><DD>受信したパケットの数</DD><DT><CODE>drop</CODE></DT><DD>取りこぼしたしたパケットの数</DD></DL>
|
137
137
|
</BLOCKQUOTE>
|
138
138
|
|
139
139
|
</p>
|
data/doc-ja/Dumper.html
CHANGED
@@ -8,41 +8,41 @@
|
|
8
8
|
<DT><H1>Dumper</H1></DT>
|
9
9
|
<DD>
|
10
10
|
|
11
|
-
|
12
|
-
tcpdump
|
11
|
+
パケットを tcpdump 形式のファイルに書き出すクラス。生成したファイルは
|
12
|
+
tcpdump や<A HREF="Capture.html#.open_offline"><CODE>Capture.open_offline</CODE></A>を使って読むことができます。
|
13
13
|
</DD>
|
14
|
-
<DT><H2
|
14
|
+
<DT><H2>スーパークラス:</H2></DT>
|
15
15
|
<DD><DL><DT><A HREF="http://www.ruby-lang.org/ja/man-1.4/Object.html"><CODE>Object</CODE></A></DT></DL></DD>
|
16
|
-
<DT><H2
|
16
|
+
<DT><H2>クラスメソッド:</H2></DT>
|
17
17
|
<DL COMPACT>
|
18
18
|
<DT>
|
19
19
|
<A NAME=".open"><CODE>open(<var>capture</var>, <var>filename</var>)</CODE></A>
|
20
20
|
<DD>
|
21
21
|
<p>
|
22
22
|
|
23
|
-
<VAR>capture</VAR
|
24
|
-
<VAR>filename</VAR
|
25
|
-
|
23
|
+
<VAR>capture</VAR>から取り込んだパケットを
|
24
|
+
<VAR>filename</VAR>に書き出すための<CODE>Dumper</CODE>を返し
|
25
|
+
ます。
|
26
26
|
</p>
|
27
27
|
</DL>
|
28
|
-
<DT><H2
|
28
|
+
<DT><H2>メソッド:</H2></DT>
|
29
29
|
<DL COMPACT>
|
30
30
|
<DT>
|
31
31
|
<A NAME="close"><CODE>close</CODE></A>
|
32
32
|
<DD>
|
33
33
|
<p>
|
34
34
|
|
35
|
-
<CODE>Dumper</CODE
|
35
|
+
<CODE>Dumper</CODE>オブジェクトをクローズします。
|
36
36
|
</p>
|
37
37
|
<DT>
|
38
38
|
<A NAME="dump"><CODE>dump(<var>packet</var>)</CODE></A>
|
39
39
|
<DD>
|
40
40
|
<p>
|
41
41
|
|
42
|
-
<VAR>packet</VAR
|
43
|
-
<VAR>packet</VAR
|
44
|
-
|
45
|
-
|
42
|
+
<VAR>packet</VAR>をこの<CODE>Dumper</CODE>に書き出します。
|
43
|
+
<VAR>packet</VAR>はこの<CODE>Dumper</CODE>をオープンする時に
|
44
|
+
指定した<A HREF="Capture.html"><CODE>Capture</CODE></A>から取り込まれたものでなければなりま
|
45
|
+
せん。
|
46
46
|
</p>
|
47
47
|
</DL>
|
48
48
|
</DL>
|