ahobson-pcap 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,46 @@
1
+ MANIFEST
2
+ README
3
+ README.ja
4
+ COPYING
5
+ ChangeLog
6
+ extconf.rb
7
+ ruby_pcap.h
8
+ Pcap.c
9
+ packet.c
10
+ ip_packet.c
11
+ tcp_packet.c
12
+ udp_packet.c
13
+ icmp_packet.c
14
+ lib/pcap_misc.rb
15
+ lib/pcaplet.rb
16
+ examples/test.rb
17
+ examples/tcpdump.rb
18
+ examples/httpdump.rb
19
+ doc/index.html
20
+ doc/Pcap.html
21
+ doc/Capture.html
22
+ doc/Pcaplet.html
23
+ doc/Packet.html
24
+ doc/IPPacket.html
25
+ doc/TCPPacket.html
26
+ doc/UDPPacket.html
27
+ doc/ICMPPacket.html
28
+ doc/IPAddress.html
29
+ doc/Dumper.html
30
+ doc/Filter.html
31
+ doc/PcapError.html
32
+ doc/TruncatedPacket.html
33
+ doc-ja/index.html
34
+ doc-ja/Pcap.html
35
+ doc-ja/Capture.html
36
+ doc-ja/Pcaplet.html
37
+ doc-ja/Packet.html
38
+ doc-ja/IPPacket.html
39
+ doc-ja/TCPPacket.html
40
+ doc-ja/UDPPacket.html
41
+ doc-ja/ICMPPacket.html
42
+ doc-ja/IPAddress.html
43
+ doc-ja/Dumper.html
44
+ doc-ja/Filter.html
45
+ doc-ja/PcapError.html
46
+ doc-ja/TruncatedPacket.html
data/README ADDED
@@ -0,0 +1,48 @@
1
+ * Introduction
2
+
3
+ ruby-pcap is a ruby extension to LBL libpcap (Packet Capture library).
4
+ This library also includes classes to access TCP/IP header.
5
+
6
+ * Installation
7
+
8
+ Requirements:
9
+
10
+ - ruby-1.4.x
11
+ - libpcap (http://www.tcpdump.org/)
12
+
13
+ Compile:
14
+
15
+ If ruby supports dynamic link of extension module on your OS,
16
+ following commands will install ruby-pcap.
17
+
18
+ ruby extconf.rb [options]
19
+ make
20
+ make install
21
+
22
+ You can specify options when you run 'ruby extconf.rb':
23
+
24
+ `--with-pcap-dir=PREFIX'
25
+ Directory where libpcap is installed. Default is '/usr/local'.
26
+
27
+ If dynamic link isn't available, you can link ruby-pcap statically
28
+ with ruby. Extract ruby-pcap under the directory 'ext' in ruby source
29
+ tree, then build ruby.
30
+
31
+ * Usage
32
+
33
+ See the documentation under the directory 'doc'.
34
+ Directory 'examples' contains some simple scripts.
35
+
36
+ * Author
37
+
38
+ Masaki Fukushima <fukusima@goto.info.waseda.ac.jp>
39
+
40
+ ruby-pcap is copyrighted free software by Masaki Fukushima.
41
+
42
+ You can redistribute it and/or modify it under the terms of
43
+ the GPL (GNU GENERAL PUBLIC LICENSE). See COPYING file about GPL.
44
+
45
+ THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
46
+ WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
47
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. See the GPL for
48
+ more details.
@@ -0,0 +1,50 @@
1
+ * $B35MW(B
2
+
3
+ ruby-pcap $B$O(B Ruby $B$+$i(B LBL $B$N(B libpcap (Packet Capture library) $B$X%"%/(B
4
+ $B%;%9$9$k$?$a$N3HD%%i%$%V%i%j$G$9!#(BTCP/IP$B$N%X%C%@$N>pJs$K%"%/%;%9$9$k$?(B
5
+ $B$a$N%/%i%9$b4^$s$G$$$^$9!#(B
6
+
7
+ * $B%$%s%9%H!<%k(B
8
+
9
+ $BI,MW$J$b$N(B:
10
+
11
+ - ruby-1.4.x
12
+ - libpcap (http://www.tcpdump.org/)
13
+
14
+ $B%3%s%Q%$%k(B:
15
+
16
+ ruby $B$,3HD%%i%$%V%i%j$N%@%$%J%_%C%/%j%s%/$r%5%]!<%H$7$F$$$k>l9g$O!"(B
17
+ $B0J2<$N<j=g$G%$%s%9%H!<%k$G$-$^$9!#(B
18
+
19
+ ruby extconf.rb [options]
20
+ make
21
+ make install
22
+
23
+ 'ruby extconf.rb'$B$r<B9T$9$k;~$K$O0J2<$N%*%W%7%g%s$r;XDj$G$-$^$9!#(B
24
+
25
+ `--with-pcap-dir=PREFIX'
26
+ libpcap$B$,%$%s%9%H!<%k$5$l$F$$$k%G%#%l%/%H%j$r;XDj$7$^$9!#(B
27
+ $B%G%U%)%k%H$O(B'/usr/local'$B$G$9!#(B
28
+
29
+ $B%@%$%J%_%C%/%j%s%/$,;H$($J$$>l9g$O(B ruby $B$K@EE*$K%j%s%/$7$F2<$5$$!#(B
30
+ $B$=$N>l9g$O(B ruby $B%=!<%9Cf$N(B 'ext' $B%G%#%l%/%H%j$N2<$G(B ruby-pcap $B$rE83+$7(B
31
+ $B$F$+$i(B ruby $B$r%S%k%I$7$F2<$5$$!#(B
32
+
33
+ * $B;H$$J}(B
34
+
35
+ doc $B$*$h$S(B doc-ja $B%G%#%l%/%H%j0J2<$K$"$k%U%!%$%k$r8+$F2<$5$$!#(B
36
+ examples $B%G%#%l%/%H%j$K4JC1$J%5%s%W%k%9%/%j%W%H$,$"$j$^$9!#(B
37
+
38
+ * $B:n<T(B
39
+
40
+ $BJ!Eh@55!(B <fukusima@goto.info.waseda.ac.jp>
41
+
42
+ ruby-pcap$B$OJ!Eh@55!$,Cx:n8"$rJ];}$9$k(B free software $B$G$9!#(B
43
+
44
+ ruby-pcap$B$O(BGPL(GNU GENERAL PUBLIC LICENSE)$B$K=>$C$F:FG[I[$^$?$O(B
45
+ $BJQ99$9$k$3$H$,$G$-$^$9!#(BGPL$B$K$D$$$F$O(BCOPYING$B%U%!%$%k$r;2>H$7$F(B
46
+ $B$/$@$5$$!#(B
47
+
48
+ ruby-pcap$B$OL5J]>Z$G$9!#:n<T$O(Bruby-pcap$B$N%P%0$J$I$+$iH/@8$9$k(B
49
+ $B$$$+$J$kB;32$KBP$7$F$b@UG$$r;}$A$^$;$s!#>\:Y$K$D$$$F$O(B GPL $B$r(B
50
+ $B;2>H$7$F$/$@$5$$!#(B
@@ -0,0 +1,17 @@
1
+ begin
2
+ require 'rubygems'
3
+ require 'jeweler'
4
+ Jeweler::Tasks.new do |gemspec|
5
+ gemspec.name = "pcap"
6
+ gemspec.summary = "Interface to LBL Packet Capture library (libpcap)"
7
+ gemspec.email = "fukusima@goto.info.waseda.ac.jp"
8
+ gemspec.homepage = "http://www.goto.info.waseda.ac.jp/~fukusima/ruby/pcap-e.html"
9
+ gemspec.description = "Ruby interface to LBL Packet Capture library. This library also includes classes to access packet header fields."
10
+ gemspec.authors = ["Masaki Fukushima", "Andrew Hobson"]
11
+ gemspec.extensions = ["ext/extconf.rb"]
12
+ gemspec.files = FileList["[A-Z]*", "{doc,doc-ja,ext,lib,examples}/**/*"]
13
+ gemspec.test_files = []
14
+ end
15
+ rescue LoadError
16
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
17
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.7.0
@@ -0,0 +1,147 @@
1
+ <HTML>
2
+ <!-- THIS FILE IS GENERATED FROM ANOTHER SOURCE FILE -->
3
+ <HEAD>
4
+ <TITLE>Capture</TITLE>
5
+ </HEAD>
6
+ <BODY BGCOLOR="ffffff">
7
+ <DL>
8
+ <DT><H1>Capture</H1></DT>
9
+ <DD>
10
+
11
+ �ѥ��åȥ���ץ����ɽ�����֥�������
12
+ </DD>
13
+ <DT><H2>�����ѡ����饹:</H2></DT>
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>���󥯥롼�ɤ��Ƥ���⥸�塼��:</H2></DT>
16
+ <DL>
17
+ <DT><A HREF="http://www.ruby-lang.org/ja/man-1.4/Enum.html"><CODE>Enumerable</CODE></A></DT>
18
+ </DL>
19
+ <DT><H2>���饹�᥽�å�:</H2></DT>
20
+ <DL COMPACT>
21
+ <DT>
22
+ <A NAME=".open_live"><CODE>open_live(<var>device</var>[, <var>snaplen</var>[, <var>promisc</var>[, <var>to_ms</var>]]])</CODE></A>
23
+ <DD>
24
+ <p>
25
+
26
+ �ǥХ����򥪡��ץ󤷤� <CODE>Capture</CODE> ���֥������Ȥ���
27
+ ���ޤ���
28
+ <VAR>snaplen</VAR>, <VAR>promisc</VAR>,
29
+ <VAR>to_ms</VAR> �Υǥե�����ͤϤ��줾�� 68 �����ƥå�,
30
+ <CODE>true</CODE>, 1000 �ߥ��äǤ���
31
+ </p>
32
+ <DT>
33
+ <A NAME=".open_offline"><CODE>open_offline(<var>filename</var>)</CODE></A>
34
+ <DD>
35
+ <p>
36
+
37
+ <VAR>filename</VAR> �ǻ��ꤵ�줿�ե�����򥪡��ץ󤷤�
38
+ <CODE>Capture</CODE>���֥������Ȥ��֤��ޤ���
39
+ </p>
40
+ </DL>
41
+ <DT><H2>�᥽�å�:</H2></DT>
42
+ <DL COMPACT>
43
+ <DT>
44
+ <A NAME="close"><CODE>close</CODE></A>
45
+ <DD>
46
+ <p>
47
+
48
+ <CODE>Capture</CODE>���֥������Ȥ򥯥��������ޤ���
49
+ </p>
50
+ <DT>
51
+ <A NAME="datalink"><CODE>datalink</CODE></A>
52
+ <DD>
53
+ <p>
54
+
55
+ �ǡ�����󥯤Υ����פ�ɽ���������֤��ޤ���
56
+ (<A HREF="Pcap.html#::DLT_EN10MB"><CODE>DLT_EN10MB</CODE></A> ��)
57
+ </p>
58
+ <DT>
59
+ <A NAME="dispatch"><CODE>dispatch([<var>count</var>]) {|<var>packet</var>|...}</CODE></A>
60
+ <DD>
61
+ <p>
62
+
63
+ <P>
64
+
65
+ �ƥѥ��åȤ��Ф��Ʒ����֤��ޤ����֥��å��ˤ�
66
+ <A HREF="Packet.html"><CODE>Packet</CODE></A>�����Υ��֥��饹�Υ��󥹥��󥹤��Ϥ���ޤ���
67
+ </P>
68
+
69
+ <P>
70
+
71
+ <VAR>count</VAR> �ˤϽ�������ѥ��åȤκ��������ꤷ�ޤ���
72
+ <VAR>count</VAR> �� -1 ����ꤹ��ȥХåե������äƤ����
73
+ ���å����Ƥ�������ޤ���<VAR>count</VAR> �� 0 ����ꤹ���
74
+ ���顼���ե�����ν���꤫�����ॢ���Ȥ�ã����ޤǥѥ��å�
75
+ ��������ޤ���
76
+ <VAR>count</VAR> �Υǥե�����ͤ� -1 �Ǥ���
77
+ </P>
78
+
79
+ </p>
80
+ <DT>
81
+ <A NAME="each_packet"><CODE>each_packet([<var>count</var>]) {|<var>packet</var>|...}</CODE></A>
82
+ <DD>
83
+ <DT>
84
+ <A NAME="each"><CODE>each([<var>count</var>]) {|<var>packet</var>|...}</CODE></A>
85
+ <DD>
86
+ <DT>
87
+ <A NAME="loop"><CODE>loop([<var>count</var>]) {|<var>packet</var>|...}</CODE></A>
88
+ <DD>
89
+ <p>
90
+
91
+ <P>
92
+
93
+ �ƥѥ��åȤ��Ф��Ʒ����֤��ޤ����֥��å��ˤ�
94
+ <A HREF="Packet.html"><CODE>Packet</CODE></A>�����Υ��֥��饹�Υ��󥹥��󥹤��Ϥ���ޤ���
95
+ </P>
96
+
97
+ <P>
98
+
99
+ <VAR>count</VAR> �ˤϽ�������ѥ��åȤκ��������ꤷ�ޤ���
100
+ <VAR>count</VAR> ����ο�����ꤹ��ȥ��顼���ե�����ν���
101
+ ���ã����ޤǥѥ��åȤ�������ޤ���<VAR>count</VAR> �Υǥե�
102
+ ����ͤ� -1 �Ǥ���
103
+ </P>
104
+
105
+ </p>
106
+ <DT>
107
+ <A NAME="snapshot"><CODE>snapshot</CODE></A>
108
+ <DD>
109
+ <DT>
110
+ <A NAME="snaplen"><CODE>snaplen</CODE></A>
111
+ <DD>
112
+ <p>
113
+
114
+ snapshot ��Ĺ�����֤��ޤ���
115
+ </p>
116
+ <DT>
117
+ <A NAME="setfilter"><CODE>setfilter(<var>filter</var>[, <var>optimize</var>])</CODE></A>
118
+ <DD>
119
+ <p>
120
+
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
+ </p>
127
+ <DT>
128
+ <A NAME="stats"><CODE>stats</CODE></A>
129
+ <DD>
130
+ <p>
131
+
132
+ �ѥ��åȥ���ץ���ˤĤ��Ƥ����פ�ޤ� <A HREF="http://www.ruby-lang.org/ja/man-1.4/Struct.html"><CODE>Struct</CODE></A>
133
+ ���֤��ޤ�����¤�Τϰʲ��Υ��Ф�����ޤ���
134
+ <BLOCKQUOTE>
135
+ <DL COMPACT>
136
+ <DT><CODE>recv</CODE></DT><DD>���������ѥ��åȤο�</DD><DT><CODE>drop</CODE></DT><DD>��ꤳ�ܤ��������ѥ��åȤο�</DD></DL>
137
+ </BLOCKQUOTE>
138
+
139
+ </p>
140
+ </DL>
141
+ </DL>
142
+ <HR>
143
+ <P ALIGN="RIGHT">
144
+ <A HREF="mailto:fukusima@goto.info.waseda.ac.jp">fukusima@goto.info.waseda.ac.jp</A><BR>
145
+ </P>
146
+ </BODY>
147
+ </HTML>
@@ -0,0 +1,54 @@
1
+ <HTML>
2
+ <!-- THIS FILE IS GENERATED FROM ANOTHER SOURCE FILE -->
3
+ <HEAD>
4
+ <TITLE>Dumper</TITLE>
5
+ </HEAD>
6
+ <BODY BGCOLOR="ffffff">
7
+ <DL>
8
+ <DT><H1>Dumper</H1></DT>
9
+ <DD>
10
+
11
+ �ѥ��åȤ� tcpdump �����Υե�����˽񤭽Ф����饹�����������ե������
12
+ tcpdump ��<A HREF="Capture.html#.open_offline"><CODE>Capture.open_offline</CODE></A>��Ȥä��ɤळ�Ȥ��Ǥ��ޤ���
13
+ </DD>
14
+ <DT><H2>�����ѡ����饹:</H2></DT>
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>���饹�᥽�å�:</H2></DT>
17
+ <DL COMPACT>
18
+ <DT>
19
+ <A NAME=".open"><CODE>open(<var>capture</var>, <var>filename</var>)</CODE></A>
20
+ <DD>
21
+ <p>
22
+
23
+ <VAR>capture</VAR>�����������ѥ��åȤ�
24
+ <VAR>filename</VAR>�˽񤭽Ф������<CODE>Dumper</CODE>���֤�
25
+ �ޤ���
26
+ </p>
27
+ </DL>
28
+ <DT><H2>�᥽�å�:</H2></DT>
29
+ <DL COMPACT>
30
+ <DT>
31
+ <A NAME="close"><CODE>close</CODE></A>
32
+ <DD>
33
+ <p>
34
+
35
+ <CODE>Dumper</CODE>���֥������Ȥ򥯥��������ޤ���
36
+ </p>
37
+ <DT>
38
+ <A NAME="dump"><CODE>dump(<var>packet</var>)</CODE></A>
39
+ <DD>
40
+ <p>
41
+
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
+ </p>
47
+ </DL>
48
+ </DL>
49
+ <HR>
50
+ <P ALIGN="RIGHT">
51
+ <A HREF="mailto:fukusima@goto.info.waseda.ac.jp">fukusima@goto.info.waseda.ac.jp</A><BR>
52
+ </P>
53
+ </BODY>
54
+ </HTML>
@@ -0,0 +1,112 @@
1
+ <HTML>
2
+ <!-- THIS FILE IS GENERATED FROM ANOTHER SOURCE FILE -->
3
+ <HEAD>
4
+ <TITLE>Filter</TITLE>
5
+ </HEAD>
6
+ <BODY BGCOLOR="ffffff">
7
+ <DL>
8
+ <DT><H1>Filter</H1></DT>
9
+ <DD>
10
+
11
+ <CODE>Filter</CODE> �ϥѥ��åȤ���������˥ޥå����뤫��
12
+ ������Ƚ�ꤷ�ޤ���<CODE>Filter</CODE> �ϼºݤˤ�
13
+ <CODE>bpf_program</CODE> �ؤΥ�åѡ��Ȥ��ƺ���Ƥ��ޤ���
14
+ �ե��륿�ε�����ˡ�˴ؤ��Ƥ� <CODE>tcpdump(1)</CODE>
15
+ �򻲾Ȥ��Ʋ�������
16
+ </DD>
17
+ <DT><H2>�����ѡ����饹:</H2></DT>
18
+ <DD><DL><DT><A HREF="http://www.ruby-lang.org/ja/man-1.4/Object.html"><CODE>Object</CODE></A></DT></DL></DD>
19
+ <DT><H2>���饹�᥽�å�:</H2></DT>
20
+ <DL COMPACT>
21
+ <DT>
22
+ <A NAME=".compile"><CODE>compile(<var>expr</var>, <var>capture</var>[, <var>optimize</var>[, <var>netmask</var>]])</CODE></A>
23
+ <DD>
24
+ <DT>
25
+ <A NAME=".new"><CODE>new(<var>expr</var>, <var>capture</var>[, <var>optimize</var>[, <var>netmask</var>]])</CODE></A>
26
+ <DD>
27
+ <p>
28
+
29
+ <P>
30
+
31
+ <CODE>Filter</CODE>���֥������Ȥ��������ޤ���
32
+ <VAR>expr</VAR> �ϥե��륿��ʸ����Ǥ���<VAR>capture</VAR>
33
+ �� <A HREF="Capture.html"><CODE>Capture</CODE></A> ���֥������ȤǤ���<VAR>optimize</VAR>
34
+ �Ǻ�Ŭ����Ԥ����ɤ��������椷�ޤ���
35
+ <VAR>netmask</VAR> �ˤ���������ͥåȤΥͥåȥޥ���
36
+ ����ꤷ�ޤ���
37
+ </P>
38
+
39
+ <P>
40
+
41
+ �������줿 <CODE>Filter</CODE> �� <VAR>capture</VAR>
42
+ ��������ޤ줿�ѥ��åȤ��Ф��ƤΤ�Ŭ�ѤǤ��ޤ���
43
+ </P>
44
+
45
+ <P>
46
+
47
+ <A HREF="http://www.tcpdump.org/"><CODE>libpcap-0.5�ʹ�</CODE></A>
48
+ ����Ѥ��Ƥ�����ˤ� <VAR>capture</VAR>
49
+ ����ʬ�ˡ��ʲ����ͤ���ꤹ�뤳�Ȥ�Ǥ��ޤ���
50
+ <BLOCKQUOTE>
51
+ <DL COMPACT>
52
+ <DT><CODE>[snaplen, datalink]</CODE></DT><DD>�����ɬ�פʥѥ�᡼����ľ��Ϳ����</DD><DT>��ά (�ޤ���<CODE>nil</CODE>)</DT><DD>Ethernet�ǤΥǥե���ȤȤߤʤ�
53
+ (<CODE>[68, <A HREF="Pcap.html#::DLT_EN10MB"><CODE>DLT_EN10MB</CODE></A>]</CODE>)
54
+ </DD></DL>
55
+ </BLOCKQUOTE>
56
+
57
+ </P>
58
+
59
+ </p>
60
+ </DL>
61
+ <DT><H2>�᥽�å�:</H2></DT>
62
+ <DL COMPACT>
63
+ <DT>
64
+ <A NAME="==="><CODE>self === <var>packet</var></CODE></A>
65
+ <DD>
66
+ <DT>
67
+ <A NAME="=~"><CODE>self =~ <var>packet</var></CODE></A>
68
+ <DD>
69
+ <p>
70
+
71
+ <VAR>packet</VAR> �����Υե��륿�˥ޥå������true����
72
+ ���ޤ���
73
+ </p>
74
+ <DT>
75
+ <A NAME="~self"><CODE>~ self</CODE></A>
76
+ <DD>
77
+ <p>
78
+
79
+ �� <CODE>self</CODE>�ǤϤʤ��פȤ�������ɽ
80
+ ��<CODE>Filter</CODE>���֤��ޤ���
81
+ </p>
82
+ <DT>
83
+ <A NAME="|"><CODE>self | <var>other</var></CODE></A>
84
+ <DD>
85
+ <p>
86
+
87
+ �� <CODE>self</CODE>�ޤ���<VAR>other</VAR> �פȤ�������ɽ
88
+ ��<CODE>Filter</CODE>���֤��ޤ���
89
+ </p>
90
+ <DT>
91
+ <A NAME="&amp;"><CODE>self &amp; <var>other</var></CODE></A>
92
+ <DD>
93
+ <p>
94
+
95
+ �� <CODE>self</CODE>����<VAR>other</VAR> �פȤ�������ɽ
96
+ ��<CODE>Filter</CODE>���֤��ޤ���
97
+ </p>
98
+ <DT>
99
+ <A NAME="source"><CODE>source</CODE></A>
100
+ <DD>
101
+ <p>
102
+
103
+ �ե��륿�θ��Ȥʤä�ʸ������֤��ޤ���
104
+ </p>
105
+ </DL>
106
+ </DL>
107
+ <HR>
108
+ <P ALIGN="RIGHT">
109
+ <A HREF="mailto:fukusima@goto.info.waseda.ac.jp">fukusima@goto.info.waseda.ac.jp</A><BR>
110
+ </P>
111
+ </BODY>
112
+ </HTML>