https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2012-02-02T19:30:01Z
Ruby Issue Tracking System
Ruby master - Feature #5959: Addrinfo#inspectname
https://bugs.ruby-lang.org/issues/5959?journal_id=23505
2012-02-02T19:30:01Z
kosaki (Motohiro KOSAKI)
kosaki.motohiro@gmail.com
<ul></ul><blockquote>
<p>Addrinfo の導入によって、Socket.getaddrinfo での正引き結果がオブジェクト化され、<br>
元のホスト名を inspect で見れるようになってとても便利になったわけですが、<br>
現在この元のホスト名をとりだす API がありません。</p>
<p>ホスト名とIP アドレスをセットで扱うのに、つまり解決済みの名前とアドレスの組を扱うのに Addrinfo って便利なので、<br>
ホスト名を取り出す API が欲しいです。<br>
現在の C での名前、inspectname か hostname あたりでどうでしょう。</p>
</blockquote>
<p>inspectname はあからさまに、inspect用というニュアンスを感じるのでそれ以外がいいなあ・・・<br>
提案自体には特にコメントはなくてニュートラルです</p>
Ruby master - Feature #5959: Addrinfo#inspectname
https://bugs.ruby-lang.org/issues/5959?journal_id=23506
2012-02-02T19:31:54Z
akr (Akira Tanaka)
akr@fsij.org
<ul></ul><p>2012年2月2日17:16 Yui NARUSE <a href="mailto:naruse@airemix.jp" class="email">naruse@airemix.jp</a>:</p>
<blockquote>
<p>Addrinfo の導入によって、Socket.getaddrinfo での正引き結果がオブジェクト化され、<br>
元のホスト名を inspect で見れるようになってとても便利になったわけですが、<br>
現在この元のホスト名をとりだす API がありません。</p>
<p>ホスト名とIP アドレスをセットで扱うのに、つまり解決済みの名前とアドレスの組を扱うのに Addrinfo って便利なので、<br>
ホスト名を取り出す API が欲しいです。<br>
現在の C での名前、inspectname か hostname あたりでどうでしょう。</p>
</blockquote>
<p>inspectname はホスト名ではありません。</p>
<p>ドキュメントの例に</p>
<ul>
<li>Addrinfo.getaddrinfo("www.kame.net", 80, nil, :STREAM)</li>
<li>#=> [#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net:80)>,</li>
<li>
<a name="ltAddrinfo-20012000800220347fffea5308580-TCP"></a>
<h1 >#<Addrinfo: [2001:200:0:8002:203:47ff:fea5:3085]:80 TCP<a href="#ltAddrinfo-20012000800220347fffea5308580-TCP" class="wiki-anchor">¶</a></h1>
</li>
</ul>
<p>(<a href="http://www.kame.net:80)%3E%5D">www.kame.net:80)>]</a></p>
<p>というところの <a href="http://www.kame.net:80" class="external">www.kame.net:80</a> というように、ポートがつくこともあります。<br>
(いま動かすとなぜかつきませんが、それは意図せざる動作です。)</p>
<p>inspectname は生成したときの情報を inspect のためにわかりやすいように<br>
残しておく、というのが意図です。</p>
<a name="またAddrinfo-の生成時には必ずしもホスト名が存在するとは限らないように思います"></a>
<h2 >また、Addrinfo の生成時には必ずしもホスト名が存在するとは限らないように思います。<a href="#またAddrinfo-の生成時には必ずしもホスト名が存在するとは限らないように思います" class="wiki-anchor">¶</a></h2>
<p>[田中 哲][たなか あきら][Tanaka Akira]</p>
Ruby master - Feature #5959: Addrinfo#inspectname
https://bugs.ruby-lang.org/issues/5959?journal_id=23507
2012-02-02T19:31:58Z
akr (Akira Tanaka)
akr@fsij.org
<ul></ul><p>2012年2月2日18:12 Tanaka Akira <a href="mailto:akr@fsij.org" class="email">akr@fsij.org</a>:</p>
<blockquote>
<p>inspectname はホスト名ではありません。</p>
<p>ドキュメントの例に</p>
<ul>
<li>Addrinfo.getaddrinfo("www.kame.net", 80, nil, :STREAM)</li>
<li>#=> [#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net:80)>,</li>
<li>
<a name="ltAddrinfo-20012000800220347fffea5308580-TCP"></a>
<h1 >#<Addrinfo: [2001:200:0:8002:203:47ff:fea5:3085]:80 TCP<a href="#ltAddrinfo-20012000800220347fffea5308580-TCP" class="wiki-anchor">¶</a></h1>
</li>
</ul>
<p>(<a href="http://www.kame.net:80)%3E%5D">www.kame.net:80)>]</a></p>
<p>というところの <a href="http://www.kame.net:80" class="external">www.kame.net:80</a> というように、ポートがつくこともあります。<br>
(いま動かすとなぜかつきませんが、それは意図せざる動作です。)</p>
</blockquote>
<p>おっと、これは意図的でした。:80 がアドレスの部分にすでに表示されていて、<br>
冗長なので削ったでした。</p>
<p>"http" に指定すれば、inspectname がホスト名そのものでない例になります。</p>
<p>% ./ruby -rsocket -rpp -e 'pp Addrinfo.getaddrinfo("www.kame.net",<br>
"http", nil, :STREAM)'<br>
[#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net:http)>,<br>
#<Addrinfo: [2001:200:dff:fff1:216:3eff:feb1:44d7]:80 TCP<br>
(www.kame.net:http)>]</p>
<a name="つまり結論は同じでinspectname-はお望みのものではありません"></a>
<h2 >つまり、結論は同じで、inspectname はお望みのものではありません。<a href="#つまり結論は同じでinspectname-はお望みのものではありません" class="wiki-anchor">¶</a></h2>
<p>[田中 哲][たなか あきら][Tanaka Akira]</p>
Ruby master - Feature #5959: Addrinfo#inspectname
https://bugs.ruby-lang.org/issues/5959?journal_id=23508
2012-02-02T19:32:00Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul></ul><p>(2012/02/02 18:33), Tanaka Akira wrote:</p>
<blockquote>
<p>2012年2月2日18:12 Tanaka Akira <a href="mailto:akr@fsij.org" class="email">akr@fsij.org</a>:</p>
<blockquote>
<p>inspectname はホスト名ではありません。</p>
<p>ドキュメントの例に</p>
<ul>
<li>Addrinfo.getaddrinfo("www.kame.net", 80, nil, :STREAM)</li>
<li>#=> [#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net:80)>,</li>
<li>
<a name="ltAddrinfo-20012000800220347fffea5308580-TCP"></a>
<h1 >#<Addrinfo: [2001:200:0:8002:203:47ff:fea5:3085]:80 TCP<a href="#ltAddrinfo-20012000800220347fffea5308580-TCP" class="wiki-anchor">¶</a></h1>
</li>
</ul>
<p>(<a href="http://www.kame.net:80)%3E%5D">www.kame.net:80)>]</a></p>
<p>というところの <a href="http://www.kame.net:80" class="external">www.kame.net:80</a> というように、ポートがつくこともあります。<br>
(いま動かすとなぜかつきませんが、それは意図せざる動作です。)</p>
</blockquote>
<p>おっと、これは意図的でした。:80 がアドレスの部分にすでに表示されていて、<br>
冗長なので削ったでした。</p>
<p>"http" に指定すれば、inspectname がホスト名そのものでない例になります。</p>
<p>% ./ruby -rsocket -rpp -e 'pp Addrinfo.getaddrinfo("www.kame.net",<br>
"http", nil, :STREAM)'<br>
[#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net:http)>,<br>
#<Addrinfo: [2001:200:dff:fff1:216:3eff:feb1:44d7]:80 TCP<br>
(www.kame.net:http)>]</p>
<p>つまり、結論は同じで、inspectname はお望みのものではありません。</p>
</blockquote>
<p>なるほど、ならばわたしが欲しいのは「inspectnameの一部」ですね。<br>
削ればいいだけのように聞こえます。</p>
<blockquote>
<p>inspectname は生成したときの情報を inspect のためにわかりやすいように<br>
残しておく、というのが意図です。</p>
<p>また、Addrinfo の生成時には必ずしもホスト名が存在するとは限らないように思います。</p>
</blockquote>
<p>まさに生成したときの情報が欲しいので、こちらもそれで構いません。<br>
ホスト名が存在しない場合は nil でいいんじゃないでしょうか。</p>
<p>--<br>
NARUSE, Yui <a href="mailto:naruse@airemix.jp" class="email">naruse@airemix.jp</a></p>
Ruby master - Feature #5959: Addrinfo#inspectname
https://bugs.ruby-lang.org/issues/5959?journal_id=23535
2012-02-05T21:23:07Z
akr (Akira Tanaka)
akr@fsij.org
<ul></ul><p>2012年2月2日19:13 NARUSE, Yui <a href="mailto:naruse@airemix.jp" class="email">naruse@airemix.jp</a>:</p>
<blockquote>
<p>なるほど、ならばわたしが欲しいのは「inspectnameの一部」ですね。<br>
削ればいいだけのように聞こえます。</p>
</blockquote>
<p>削ればいいのなら、inspect を使うのはどうでしょうか。</p>
<a name="inspectname-の安定性は名前から類推できるようにinspect-と同程度の見込みです"></a>
<h2 >inspectname の安定性は、名前から類推できるように、inspect と同程度の見込みです。<a href="#inspectname-の安定性は名前から類推できるようにinspect-と同程度の見込みです" class="wiki-anchor">¶</a></h2>
<p>[田中 哲][たなか あきら][Tanaka Akira]</p>
Ruby master - Feature #5959: Addrinfo#inspectname
https://bugs.ruby-lang.org/issues/5959?journal_id=23536
2012-02-05T23:23:06Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul></ul><p>(2012/02/05 21:23), Tanaka Akira wrote:</p>
<blockquote>
<p>2012年2月2日19:13 NARUSE, Yui <a href="mailto:naruse@airemix.jp" class="email">naruse@airemix.jp</a>:</p>
<blockquote>
<p>なるほど、ならばわたしが欲しいのは「inspectnameの一部」ですね。<br>
削ればいいだけのように聞こえます。</p>
</blockquote>
<p>削ればいいのなら、inspect を使うのはどうでしょうか。</p>
<p>inspectname の安定性は、名前から類推できるように、inspect と同程度の見込みです。</p>
</blockquote>
<p>現状では ad hoc にそうやってるんですが、API になっていないと他をいじりづらいんですよね。<br>
以下のようなことをやりたいんですが。<br>
その名前で引ける全てのサーバーの結果を得たい、と。</p>
<p>#!/usr/local/bin/ruby<br>
require 'net/http'<br>
class Addrinfo<br>
def to_str<br>
inspect[/(([a-zA-Z-.]+)/, 1]<br>
end<br>
def +(a)<br>
inspect[/(([a-zA-Z-.]+)/, 1] + a<br>
end<br>
end<br>
class Net::HTTP<br>
def conn_address<br>
@address.is_a?(Addrinfo) ? @address.ip_address : @address<br>
end<br>
end<br>
Addrinfo.getaddrinfo('rubyci.org', 'http', nil, :STREAM).each do |ai|<br>
p ai<br>
p Net::HTTP.get_response(ai, '/')<br>
end</p>
<p>--<br>
NARUSE, Yui <a href="mailto:naruse@airemix.jp" class="email">naruse@airemix.jp</a></p>
Ruby master - Feature #5959: Addrinfo#inspectname
https://bugs.ruby-lang.org/issues/5959?journal_id=23544
2012-02-06T13:23:13Z
akr (Akira Tanaka)
akr@fsij.org
<ul></ul><p>2012年2月5日23:06 NARUSE, Yui <a href="mailto:naruse@airemix.jp" class="email">naruse@airemix.jp</a>:</p>
<blockquote>
<p>現状では ad hoc にそうやってるんですが、API になっていないと他をいじりづらいんですよね。<br>
以下のようなことをやりたいんですが。</p>
</blockquote>
<p>これって、前に、net/http に ipaddr: を加えようとした、<br>
<a href="/issues/5180">[ruby-dev:44368]</a> の再挑戦ですかね。</p>
<p>「他をいじる」というのの「他」があまり明確ではありませんが、<br>
「net/http をいじる」という意味でしょうか。</p>
<h2>http proxy を通す場合は IP アドレスを指定できないので、<br>
net/http レベルでの設定はあまり適切じゃないんじゃないかなぁ、と思っています。</h2>
<p>[田中 哲][たなか あきら][Tanaka Akira]</p>
Ruby master - Feature #5959: Addrinfo#inspectname
https://bugs.ruby-lang.org/issues/5959?journal_id=23947
2012-02-17T18:47:35Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Rejected</i></li></ul><p>並列動作を考えると libcurl 使ったほうが賢い気がしてきたので reject します</p>