[ 
https://issues.apache.org/jira/browse/HADOOP-6682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12853739#action_12853739
 ] 

Hong Tang commented on HADOOP-6682:
-----------------------------------

Similar issue came up in MAPREDUCE-1222. The following code might be useful:

{noformat}
+  static Pattern IP_PATTERN;
+  
+  static {
+    // 0-255
+    String IPV4BK1 = "(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)";
+    // .b.c.d - where b/c/d are 0-255, and optionally adding two more
+    // backslashes before each period
+    String IPV4BKN = "(?:\\\\?\\." + IPV4BK1 + "){3}";
+    String IPV4_PATTERN = IPV4BK1 + IPV4BKN;
+    
+    // first hexadecimal number
+    String IPV6BK1 = "(?:[0-9a-fA-F]{1,4})";
+    // remaining 7 hexadecimal numbers, each preceded with ":".
+    String IPV6BKN = "(?::" + IPV6BK1 + "){7}";
+    String IPV6_PATTERN = IPV6BK1 + IPV6BKN;
+
+    IP_PATTERN = Pattern.compile(
+        "^(?:" + IPV4_PATTERN + "|" + IPV6_PATTERN + ")$");
+  }
+
+ 
+  static boolean isIPAddress(String hostname) {
+    return IP_PATTERN.matcher(hostname).matches();
+  }
{noformat}

> NetUtils:normalizeHostName does not process hostnames starting with [a-f] 
> correctly
> -----------------------------------------------------------------------------------
>
>                 Key: HADOOP-6682
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6682
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: io
>            Reporter: Jakob Homan
>
>   public static String normalizeHostName(String name) {
>     if (Character.digit(name.charAt(0), 16) != -1) {
>       return name;
> This code is attempting to short-circuit the hostname->ip resolution on the 
> assumption that if name starts with a digit, it's already an ip address.  
> This is of questionable value, but because it checks for a hex digit, it will 
> fail on names starting with [a-f].  Such names will not be converted to an ip 
> address, but be returned unchanged.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to