Module: BetterIpaddr::Constants::Regex
- Defined in:
- lib/better_ipaddr/constants.rb
Constant Summary collapse
- OCTET =
Regexp.union( /25[0-5]/, /2[0-4][0-9]/, /1[0-9][0-9]/, /[1-9][0-9]/, /[0-9]/ )
- TRAILING_OCTET =
/\.#{OCTET}/
- IPV4_PL =
Regexp.union( /3[0-2]/, /[1-2][0-9]/, /[0-9]/ )
- IPV4 =
%r{\A#{OCTET}#{TRAILING_OCTET}{3}(?:\/#{IPV4_PL})?\z}
- QUAD =
IPv6 regex adapted from stackoverflow.com/a/17871737
/[0-9a-zA-Z]{1,4}/
- LEADING_QUAD =
/[0-9a-zA-Z]{1,4}:/
- TRAILING_QUAD =
/:[0-9a-zA-Z]{1,4}/
- IPV6_PL =
Regexp.union( /[0-9]/, /[1-9][0-9]/, /1[0-1][0-9]/, /12[0-8]/ )
- IPV6_ADDRESS =
Regexp.union( # full /#{LEADING_QUAD}{7,7}#{QUAD}/, # zero-compressed /::/, /#{LEADING_QUAD}{1,7}:/, /:#{TRAILING_QUAD}{1,7}/, /#{LEADING_QUAD}{1,6}#{TRAILING_QUAD}{1,1}/, /#{LEADING_QUAD}{1,5}#{TRAILING_QUAD}{1,2}/, /#{LEADING_QUAD}{1,4}#{TRAILING_QUAD}{1,3}/, /#{LEADING_QUAD}{1,3}#{TRAILING_QUAD}{1,4}/, /#{LEADING_QUAD}{1,2}#{TRAILING_QUAD}{1,5}/, /#{LEADING_QUAD}{1,1}#{TRAILING_QUAD}{1,6}}/, # IPv4-mapped / -translated /::(ffff(:0{1,4}){0,1}:){0,1}#{IPV4}/, # IPv4 embedded /#{LEADING_QUAD}{1,4}:#{IPV4}/ )
- IPV6 =
%r{\A#{IPV6_ADDRESS}(?:\/#{IPV6_PL})?\z}