98. IPアドレスの有効チェック
シェアしよう
少し工夫が必要 - accepted / - tried
IPv4
IPv4 アドレスには「.」で区切る四つの数字(octet)がある。数字は0から、255まで、例えば1.22.33.255
。IPv4にはトータルで32のbitがある、故に最多2^32 = 4,294,967,296のIPv4アドレスが使える。
IPv4では冒頭の0が無効、01.01.01.01
は無効なアドレスです。
IPv6
IPv6 アドレス は128のbitがあり、8つのグループ('hexadectet' または 'hextet'、まだ決まっていない)に別れる。各グループには16のbitがあり、なので4桁の16進数で表示できる、例えば2001:0db8:85a3:0000:0000:8a2e:0370:7334
。
IPv6では冒頭の0がOK。
これ以外のIPv6アドレスフォーマットもある、例えばZero compressionなど、けどこの問題では考慮しなくて良い。
タスク
文字列が有効なIPv4またはIPv6アドレスかどうかを確認する関数を作ってください。
質問
正規表現でこの問題を解決できますか?