Allow reading unmasked address when passed a CIDR string
まだ誰も着手していません。
- 主要言語
- Ruby
- スター
- 82
- フォーク
- 42
- 平均マージ
- 2時間 24分
- マージ済み PR(30日)
- 3
説明
This behavior caught me by surprise:
> ip = IPAddr.new('1.2.3.4/16')
=> #<IPAddr: IPv4:1.2.0.0/255.255.0.0>
> ip.to_s
=> "1.2.0.0"
Looking at the code I believe this is happening at https://github.com/ruby/ipaddr/blob/master/lib/ipaddr.rb#L649-L651, which is a very old commit, so this behavior is clearly expected. For my use case I need the host bits unmasked, so I want to parse 1.2.3.4/16 and be able to read back something like ip.address as 1.2.3.4 and the netmask as 255.255.0.0. It looks like that's not currently possible with this gem, which surprises me. Am I overlooking a method, or is there a nuance in the CIDR spec implemented here I've forgotten?
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
lib/ipaddr.rb の 649-651 行目から始め、CIDR 文字列がどのように解析されて格納されるかを追跡します。現在のアドレスとネットマスクのアクセサを要求されている動作と比較し、1.2.3.4/16 についてマスクされていないアドレスとネットマスクの両方を読み戻せるようにする API 変更を定義します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- ruby
- 領域
- networking
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100