Tala के लिए धन्यवाद।
यह है कि मैं क्या मामूली परिवर्तन के साथ this example का उपयोग करने की कोशिश की है:
private static Pattern VALID_IPV4_PATTERN = null;
private static Pattern VALID_IPV6_PATTERN = null;
private static final String ipv4Pattern = "(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])";
private static final String ipv6Pattern = "([0-9a-f]{1,4}:){7}([0-9a-f]){1,4}";
static {
try {
VALID_IPV4_PATTERN = Pattern.compile(ipv4Pattern, Pattern.CASE_INSENSITIVE);
VALID_IPV6_PATTERN = Pattern.compile(ipv6Pattern, Pattern.CASE_INSENSITIVE);
} catch (PatternSyntaxException e) {
//logger.severe("Unable to compile pattern", e);
}
}
public static String isIpAddressV4orV6(String ipAddress) {
Matcher ipv4 = IP_Utilities.VALID_IPV4_PATTERN.matcher(ipAddress);
if (ipv4.matches()) {
return "IPV4";
}
Matcher ipv6 = IP_Utilities.VALID_IPV6_PATTERN.matcher(ipAddress);
if (ipv6.matches()) {
return "IPV6";
}
return "";
}
आप के रूप में यहाँ http://www.java2s.com/Code/Java/Network-Protocol/DetermineifthegivenstringisavalidIPv4orIPv6address कहा regex का उपयोग कर सकते हैं। एचटीएम – Tala
ध्यान रखें कि जब तक एक्स-फॉरवर्ड-फॉर * आपके * सर्वर (बिगिप एफ 5 की तरह) द्वारा सेट नहीं किया जाता है, तो इसे विश्वसनीय नहीं किया जा सकता क्योंकि इसे क्लाइंट द्वारा किसी भी चीज़ पर सेट किया जा सकता है। – lapkritinis