[ruby-dev:45177] Re: [ruby-trunk - Feature #5959][Assigned] Addrinfo#inspectname

From: Tanaka Akira <akr@...>
Date: 2012-02-02 09:12:53 UTC
List: ruby-dev #45177
2012年2月2日17:16 Yui NARUSE <naruse@airemix.jp>:

> Addrinfo の導入によって、Socket.getaddrinfo での正引き結果がオブジェクト化され、
> 元のホスト名を inspect で見れるようになってとても便利になったわけですが、
> 現在この元のホスト名をとりだす API がありません。
>
> ホスト名とIP アドレスをセットで扱うのに、つまり解決済みの名前とアドレスの組を扱うのに Addrinfo って便利なので、
> ホスト名を取り出す API が欲しいです。
> 現在の C での名前、inspectname か hostname あたりでどうでしょう。

inspectname はホスト名ではありません。

ドキュメントの例に

 *   Addrinfo.getaddrinfo("www.kame.net", 80, nil, :STREAM)
 *   #=> [#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net:80)>,
 *   #    #<Addrinfo: [2001:200:0:8002:203:47ff:fea5:3085]:80 TCP
(www.kame.net:80)>]

というところの www.kame.net:80 というように、ポートがつくこともあります。
(いま動かすとなぜかつきませんが、それは意図せざる動作です。)

inspectname は生成したときの情報を inspect のためにわかりやすいように
残しておく、というのが意図です。

また、Addrinfo の生成時には必ずしもホスト名が存在するとは限らないように思います。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread