.class public Lorg/apache/http/conn/util/InetAddressUtils; .super Ljava/lang/Object; .source "InetAddressUtils.java" # static fields .field private static final COLON_CHAR:C = ':' .field private static final IPV4_BASIC_PATTERN_STRING:Ljava/lang/String; = "(([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){1}(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){2}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])" .field private static final IPV4_MAPPED_IPV6_PATTERN:Ljava/util/regex/Pattern; .field private static final IPV4_PATTERN:Ljava/util/regex/Pattern; .field private static final IPV6_HEX_COMPRESSED_PATTERN:Ljava/util/regex/Pattern; .field private static final IPV6_STD_PATTERN:Ljava/util/regex/Pattern; .field private static final MAX_COLON_COUNT:I = 0x7 # direct methods .method static constructor ()V .registers 1 .line 47 const-string v0, "^(([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){1}(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){2}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object v0 sput-object v0, Lorg/apache/http/conn/util/InetAddressUtils;->IPV4_PATTERN:Ljava/util/regex/Pattern; .line 50 const-string v0, "^::[fF]{4}:(([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){1}(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){2}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object v0 sput-object v0, Lorg/apache/http/conn/util/InetAddressUtils;->IPV4_MAPPED_IPV6_PATTERN:Ljava/util/regex/Pattern; .line 53 const-string v0, "^[0-9a-fA-F]{1,4}(:[0-9a-fA-F]{1,4}){7}$" invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object v0 sput-object v0, Lorg/apache/http/conn/util/InetAddressUtils;->IPV6_STD_PATTERN:Ljava/util/regex/Pattern; .line 57 const-string v0, "^(([0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){0,5})?)::(([0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){0,5})?)$" invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object v0 sput-object v0, Lorg/apache/http/conn/util/InetAddressUtils;->IPV6_HEX_COMPRESSED_PATTERN:Ljava/util/regex/Pattern; return-void .end method .method private constructor ()V .registers 1 .line 39 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static isIPv4Address(Ljava/lang/String;)Z .registers 2 .line 78 sget-object v0, Lorg/apache/http/conn/util/InetAddressUtils;->IPV4_PATTERN:Ljava/util/regex/Pattern; invoke-virtual {v0, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object p0 invoke-virtual {p0}, Ljava/util/regex/Matcher;->matches()Z move-result p0 return p0 .end method .method public static isIPv4MappedIPv64Address(Ljava/lang/String;)Z .registers 2 .line 82 sget-object v0, Lorg/apache/http/conn/util/InetAddressUtils;->IPV4_MAPPED_IPV6_PATTERN:Ljava/util/regex/Pattern; invoke-virtual {v0, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object p0 invoke-virtual {p0}, Ljava/util/regex/Matcher;->matches()Z move-result p0 return p0 .end method .method public static isIPv6Address(Ljava/lang/String;)Z .registers 2 .line 118 invoke-static {p0}, Lorg/apache/http/conn/util/InetAddressUtils;->isIPv6StdAddress(Ljava/lang/String;)Z move-result v0 if-nez v0, :cond_f invoke-static {p0}, Lorg/apache/http/conn/util/InetAddressUtils;->isIPv6HexCompressedAddress(Ljava/lang/String;)Z move-result p0 if-eqz p0, :cond_d goto :goto_f :cond_d const/4 p0, 0x0 goto :goto_10 :cond_f :goto_f const/4 p0, 0x1 :goto_10 return p0 .end method .method public static isIPv6HexCompressedAddress(Ljava/lang/String;)Z .registers 6 const/4 v0, 0x0 move v1, v0 move v2, v1 .line 103 :goto_3 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v3 if-ge v1, v3, :cond_16 .line 104 invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C move-result v3 const/16 v4, 0x3a if-ne v3, v4, :cond_13 add-int/lit8 v2, v2, 0x1 :cond_13 add-int/lit8 v1, v1, 0x1 goto :goto_3 :cond_16 const/4 v1, 0x7 if-gt v2, v1, :cond_26 .line 108 sget-object v1, Lorg/apache/http/conn/util/InetAddressUtils;->IPV6_HEX_COMPRESSED_PATTERN:Ljava/util/regex/Pattern; invoke-virtual {v1, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object p0 invoke-virtual {p0}, Ljava/util/regex/Matcher;->matches()Z move-result p0 if-eqz p0, :cond_26 const/4 v0, 0x1 :cond_26 return v0 .end method .method public static isIPv6StdAddress(Ljava/lang/String;)Z .registers 2 .line 92 sget-object v0, Lorg/apache/http/conn/util/InetAddressUtils;->IPV6_STD_PATTERN:Ljava/util/regex/Pattern; invoke-virtual {v0, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object p0 invoke-virtual {p0}, Ljava/util/regex/Matcher;->matches()Z move-result p0 return p0 .end method