Aimless

IPv6のアドレスをソートする

ruby

 素人が試行錯誤した結果です。そのまま文字列として比較すると上手くいかなかったので、IPv6アドレスから:を除去して10進数数値に変換する形でソートしたら上手く行きました。

IPv6アドレス配列.sort!{|a,b| a.gsub(":","").hex.to_i <=> b.gsub(":","").hex.to_i }

 短縮記法を気にせず10進法に変換しているので、正しくソートされているかに一抹の不安があります。とはいえ、これでブイロクマの抱えていた既知の問題が解決できそうです。

10 Jun 2012