Class NetworkUtils


  • public class NetworkUtils
    extends java.lang.Object
    Author:
    Stuart Douglas, baranowb
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String IP4_EXACT
      ?: - unnamed groups are used for performance reasons.
      static java.lang.String IP4_SEGMENT
      IPv4Segment: (25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])
      static java.lang.String IP6_EXACT
      IPV6 match.
      static java.lang.String IP6_SEGMENT
      IPv6Segment: ([0-9a-fA-F]{1,4}) - 1 to 4 hex digits
    • Field Detail

      • IP4_SEGMENT

        public static final java.lang.String IP4_SEGMENT
        IPv4Segment: (25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])
        See Also:
        Constant Field Values
      • IP4_EXACT

        public static final java.lang.String IP4_EXACT
        ?: - unnamed groups are used for performance reasons. IPv4Segment: 25[0-5]|((2[0-4]|1){0,1}[0-9]){0,1}[0-9]) -extra () is not needed but makes it clear for OR IPv4Address: (IPv4Segment\.){3,3}IPv4Segment
        See Also:
        Constant Field Values
      • IP6_SEGMENT

        public static final java.lang.String IP6_SEGMENT
        IPv6Segment: ([0-9a-fA-F]{1,4}) - 1 to 4 hex digits
        See Also:
        Constant Field Values
      • IP6_EXACT

        public static final java.lang.String IP6_EXACT
        IPV6 match. ?: - unnamed groups are used for performance reasons. Requirements: - match full or partial IPV6 ( sliding '::') - match end to start - ^$ to ensure it does not match part of some random (\d:){n,m} - IPv4-Embedded IPv6 Address - TODO: special types of addresses ? Explanation: IPv6Segment: ([0-9a-fA-F]{1,4}) - 1 to 4 hex digits IPv6Address: (IPv6Segment:){1,n}IPv6Segment or (IPv6Segment:){1,x}(:IPv6Segment){1,y} where x+y<8 ^ shift of segments ~left to right with qualifiers Above is just general form for pure IPv6 without any spices ^(?:([0-9a-fA-F]{1,4}:){7,7}(?:[0-9a-fA-F]){1,4} - 1:2:3:4:5:6:7:8 |(?:([0-9a-fA-F]{1,4}:)){1,7}(?:(:)) - 1:: 1:2:3:4:5:6:7:: |(?:([0-9a-fA-F]{1,4}:)){1,6}(?:(:[0-9a-fA-F]){1,4}) - 1::8 1:2:3:4:5:6::8 |(?:([0-9a-fA-F]{1,4}:)){1,5}(?:(:[0-9a-fA-F]{1,4})){1,2} - 1::7:8 1:2:3:4:5::8 |(?:([0-9a-fA-F]{1,4}:)){1,4}(?:(:[0-9a-fA-F]{1,4})){1,3} - 1::6:7:8 1:2:3:4::8 |(?:([0-9a-fA-F]{1,4}:)){1,3}(?:(:[0-9a-fA-F]{1,4})){1,4} - 1::5:6:7:8 1:2:3::8 |(?:([0-9a-fA-F]{1,4}:)){1,2}(?:(:[0-9a-fA-F]{1,4})){1,5} - 1::4:5:6:7:8 1:2::8 |(?:([0-9a-fA-F]{1,4}:))(?:(:[0-9a-fA-F]{1,4})){1,6} - 1::3:4:5:6:7:8 1::8 |(?:(:))(?:((:[0-9a-fA-F]{1,4}){1,7}|(?:(:)))) - ::2:3:4:5:6:7:8 ::8 :: |(?:([0-9a-fA-F]{1,4}:)){1,4}(?:(:IPv4Address)))$ - 1.2.3.4::192.168.1.1 1::192.168.1.1
        See Also:
        Constant Field Values
    • Method Detail

      • formatPossibleIpv6Address

        public static java.lang.String formatPossibleIpv6Address​(java.lang.String address)
      • parseIpv4Address

        public static java.net.InetAddress parseIpv4Address​(java.lang.String addressString)
                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • parseIpv6Address

        public static java.net.InetAddress parseIpv6Address​(java.lang.String addressString)
                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • parseIpv6AddressToBytes

        public static byte[] parseIpv6AddressToBytes​(java.lang.String addressString)
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • toObfuscatedString

        public static java.lang.String toObfuscatedString​(java.net.InetAddress address)