ahobson-pcap 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>