Enter an IP address to determine whether it is IP4 or IP6

  1. class Solution{  
  2.       <span style="white-space:pre;">   </span>      privatestatic Pattern pattern;   
  3.           privatestatic Pattern ptipv4;   
  4.           static {  
  5.               // ipv6  
  6.               pattern = Pattern.compile("^ ((([0-9A-Fa-f] {1,4}:) {7} [0-9A-Fa-f] {1,4}) | (([0-9A-Fa-f ] {1,4}:) {1,7} :) | (([0-9A-Fa-f] {1,4}:) {6}: [0-9A-Fa-f] {1, 4}) | (([0-9A-Fa-f] {1,4}:) {5} (: [0-9A-Fa-f] {1,4}) {1,2}) | ( ([0-9A-Fa-f] {1,4}:) {4} (: [0-9A-Fa-f] {1,4}) {1,3}) | (([0-9A -Fa-f] {1,4}:) {3} (: [0-9A-Fa-f] {1,4}) {1,4}) | (([0-9A-Fa-f] {1,4}:) {2} (: [0-9A-Fa-f] {1,4}) {1,5}) | ([0-9A-Fa-f] {1,4}: (: [0-9A-Fa-f] {1,4}) {1,6}) | (: (: [0-9A-Fa-f] {1,4}) {1,7}) | (([0-9A-Fa-f] {1,4}:) {6} (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \ \ d | 25 [0-5]) (\\. (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0- 5])) {3}) | (([0-9A-Fa-f] {1,4}:) {5}: (\\ d | [1-9] \\ d | 1 \\ d { 2} | 2 [0-4] \\ d | 25 [0-5]) (\\. (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0- 4] \\ d | 25 [0-5])) {3}) | (([0-9A-Fa-f] {1,4}:) {4} (: [0-9A-Fa-f ] {1,4}) {0,1}: (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0-5 ]) (\\. (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0-5])) {3}) | (([0-9A-Fa-f] {1,4}:) {3} (: [0-9A-Fa-f] {1,4}) {0,2}: (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0-5]) (\\.(\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0-5])) {3}) | (([0- 9A-Fa-f] {1,4}:) {2} (: [0-9A-Fa-f] {1,4}) {0,3}: (\\ d | [1-9] \ \ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0-5]) (\\. (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0-5])) {3}) | ([0-9A-Fa-f] {1,4}: (: [0-9A- Fa-f] {1,4}) {0,4}: (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [ 0-5]) (\\. (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0-5])) { 3}) | (: (: [0-9A-Fa-f] {1,4}) {0,5}: (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0-5]) (\\. (\\ d | [1-9] \\ d | 1 \\ d {2} | 2 [0-4] \\ d | 25 [0-5])) {3})) $ "(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))$"(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))$");  
  7.               // ipv4  
  8.               ptipv4 = Pattern.compile("^(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}$");  
  9.           }  
  10.   
  11.           publicstatic String[] checkIPs(String[] ip_array) {   
  12.                 
  13.               String[] str=new String[ip_array.length];  
  14.               for(int i=0;i<ip_array.length;i++){  
  15.                   if(pattern.matcher(ip_array[i]).matches()){  
  16.                       str[i]= "IPv6";  
  17.                   }elseif(ptipv4.matcher(ip_array[i]).matches() ){   
  18.                          str[i]="IPv4";  
  19.                   }else{  
  20.                         str[i]="Neither";   
  21.                   }  
  22.               }  
  23.               return  str;  
  24.           }  
  25.   
  26.   
  27.   
  28.   
  29. }  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324837000&siteId=291194637