隙あらば寝る

うぇぶのかいしゃではたらくえんじにあがかいています

golang で ip アドレス操作をするライブラリを書いた

golang で IP アドレスを操作するにあたって、

  • あるアドレスから相対的に前後のアドレスを得る
  • ブロードキャストアドレスを得る

というのがやりたくなってライブラリ書いた。

github.com

API は以下。

godoc.org

net.IP と net.IPNet を匿名フィールドにしたので使い勝手は標準ライブラリの拡張のように出来たと思う。

書くにあたって初めて知ったのは net.IP が []byte のエイリアス型だったこと。なるほどこういう書き方があるのかと関心してしまった。

標準ライブラリからは学ぶことが多い。