[#20083] non-block IO with TCPSocket — dn <daisuke@...>

初投稿の中村と申します。よろしくお願いします。

19 messages 2000/01/06
[#20084] Re: non-block IO with TCPSocket — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp> 2000/01/06

越水です。

[#20091] Re: non-block IO with TCPSocket — とみたまさひろ <tommy@...> 2000/01/06

とみたです。

[#20133] おききしたーいでーす — akimaru <akimaru@...>

17 messages 2000/01/09
[#20138] Re: おききしたーいでーす — akimaru <akimaru@...> 2000/01/09

[#20237] Ruby/Tk multi interpreter — nagai@...

永井@知能.九工大です.

21 messages 2000/01/17
[#20242] Re: Ruby/Tk multi interpreter — nagai@... 2000/01/17

永井@知能.九工大です.

[#20248] Re: Ruby/Tk multi interpreter — Hideto ISHIBASHI <s34204@...> 2000/01/17

石橋秀仁です。

[#20254] Re: Ruby/Tk multi interpreter — nagai@... 2000/01/18

永井@知能.九工大です.

[#20271] Re: Ruby/Tk multi interpreter — Hideto ISHIBASHI <s34204@...> 2000/01/18

石橋秀仁です。

[#20249] FTP.open err for Windows95 — "Y Kataoka" <kataoka@...>

初めまして、片岡@KLUGと申します。

18 messages 2000/01/17
[#20252] Re: FTP.open err for Windows95 — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/01/18

なひです.

[#20342] How to build ruby(current) with cygwin — KORIYAMA Naohiro <kory@...2.so-net.ne.jp>

はじめまして、こおりやまです。

19 messages 2000/01/23
[#20362] Re: How to build ruby(current) with cygwin — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/01/24

わたなべです.

[#20422] Re: How to build ruby(current) with cygwin — Masaki Suketa<CQN02273@...> 2000/01/29

Win32OLE の作者の助田です.

[#20394] ruby-1.4.3 port to HPUX 11.00 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

15 messages 2000/01/26

[ruby-list:20344] E-mail アドレスの確認・ DNS の MX など

From: ogino@...
Date: 2000-01-23 13:07:56 UTC
List: ruby-list #20344
荻野といいます。以前に挫折した組なのですが、Ruby本がでてから再度挑戦を
はじめています。しかし Perl で行き詰まると周囲から助けが来る当てがある
のですが、Ruby で行き詰まると... というわけなの質問はここでよかったで
しょうか? 今回は行き詰まるというより迷っているのですが。

# Ruby プログラミングの初心者を助け or 指導するメーリングリストがあれば
# ruby-list の内容と流量にびびってしまう私のような人間も助かるかも


CGI でメールアドレスを入力してもらいたいと思うのですが、これの確かさを
ある程度確保したいと考えました。よくある要求だと思うのですが、なかなか
良い解答が見つからないでいます。

そこでとりあえず MX を引いてからそこのサーバに EXPN や VRFY やら MAIL
FROM: と RCPT TO: を送って反応を見ればいいのではと思ったのですが、MX
を Ruby から引く方法は nslookup を起動する以外には見つかりませんでした。

つきましては、いくつかお教えいただければ幸いです。

1) 外部コマンドに頼らず A レコード以外の DNS を引く方法またはライブラ
   リのようなものはあるのでしょうか

2) 外部コマンドを起動して、その出力をもらいつつ最後のエラーコードを見
   るにはどうすればよいのでしょうか

3) そもそも本来の目的(入力されたメールアドレスの確認)にもっと良い方法
   があるのでしょうか。(あるようにも思いますが)

4) アドレスのパターンを確かめる(入力エラーなどの排除)方法として

      addr = address.dup
      # check only one address
      addr.gsub!(/[\s\n\r]+/, '')
      addr.sub!(/\"[^"]+\"/, '')
      addr.sub!(/,.*$/, '')
      addr.sub!(/\(.*\)/, '')
      addr = $1 if /\<([-\w.]+@[-\w.]+)\>/ =~ addr
      addr << '.' unless /\.$/ =~ addr  # for WindowsNT
      return false unless /^[-\w.]+@[-\w.]+$/ =~ addr

というのを書いてみましたが、正しいアドレスまではじきはしないかと心配で
す。もっと良い方法がないものでしょうか。



その他:Ruby本で「はまった」こと

上記の部分で、ちょっと sub! と sub の違いにはまりました。文字列の複数
の部分を置換していくのに

    str = str.sub(aa,bb).sub(cc,dd).sub(ee,ff)

は大丈夫なのに、速そうな

    str.sub!(aa,bb).sub!(cc,dd).sub!(ee,ff)

と書けないということに気が付くまで、結構時間がかかりました。(エラーメッ
セージにはちゃんと undefined method `sub!' for nil と書いてあったので
すから、悪いのは私なんですが)

    str.sub!(aa,bb)
    str.sub!(cc,dd)
    str.sub!(ee,ff)

と書くべきなのでしょうか。

Ruby本の P.39には「メソッド!」は同じオブジェクトを指している他の変数が
ある場合のことだけが強調されているように読めるので、「メソッド」を「メ
ソッド!」と置き換えると返る値が変わってしまうと書いてあると、私のよう
な人間は助かるかもしれません。(あのコラムからは「オブジェクト自体が変
化する」こと以外では同一という印象をもつので)

また、P.38、P.71、P.491、P.512 を見ても sub/sub!、gsub/gsub! が異なる
値を返すとは書いていないようです。ひょっとしてどこにも書いていないので
しょうか。(しかしミニではない「Ruby リファレンスマニュアル」を見ると、
メソッド!が破壊に失敗(?)したときに nil を返すのは一般的なようですね。)

わたしは irb.rb (これもどこにあるのか Ruby本では見つかりませんでした) 
をなんとか見つけていろいろ試したあとに、「えー」と思って Ruby本をひっ
くり返し、やっと http://www.ruby-lang.org/ja/man-1.4/String.html で、
真相を発見(大げさ)しました。経験談ということで、今後の版(刷?)の際の参
考になれば幸いです。できれば「ミニ」ではない「Ruby リファレンスマニュ
アル」が紙で付いていればうれしいと思います。(付いてから買う人は、です
が)


使用環境;
    ruby 1.4.3 (1999-12-08) [sparc-solaris2.6]

    ruby 1.4.3 (1999-12-08) [i386-cygwin]
    (WindowsNT Server4 SP5 + Cygwin1.dll Build 2000-01-22 00:25:06)


# 一応、RCPT TO: に対して 250 と答えが返ってきても
# あまり当てにできないことは承知しております。


-- 
荻野 充 (おぎの みつる) ... 「萩(はぎ)」にあらず
名古屋大学消費生活協同組合

In This Thread

Prev Next