在Java中验证IPv4字符串

Bellow方法正在验证字符串是否为正确的IPv4地址,如果有效,则返回true。regex和优雅的任何改进将不胜感激:

public static boolean validIP(String ip) {

if (ip == null || ip.isEmpty()) return false;

ip = ip.trim();

if ((ip.length() < 6) & (ip.length() > 15)) return false;

try {

Pattern pattern = Pattern.compile("^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");

Matcher matcher = pattern.matcher(ip);

return matcher.matches();

} catch (PatternSyntaxException ex) {

return false;

}

}

回答:

这是一种易于阅读,效率稍低的方法。

public static boolean validIP (String ip) {

try {

if ( ip == null || ip.isEmpty() ) {

return false;

}

String[] parts = ip.split( "\\." );

if ( parts.length != 4 ) {

return false;

}

for ( String s : parts ) {

int i = Integer.parseInt( s );

if ( (i < 0) || (i > 255) ) {

return false;

}

}

if ( ip.endsWith(".") ) {

return false;

}

return true;

} catch (NumberFormatException nfe) {

return false;

}

}

以上是 在Java中验证IPv4字符串 的全部内容, 来源链接: utcz.com/qa/418817.html

回到顶部