某些场景下,软件系统需要用户手动输入IPv4地址。这个时候我们就需要程序判断用户输入的字符串是否符合IPv4的格式。我编写了一个工具类来完成判断的功能。
IpUtils.java
/**
* IP工具类
*
* @author zhangchao
*/
public class IpUtils
{
/**
* 检测输入的字符串是不是符合IP格式。
* @param ip 形式如 192.168.1.23 的IP字符串。
* @author zhangchao
* @return true是符合IP格式,false不符合IP格式。
*/
public static boolean isIpStyle(String ip) {
if (null == ip || ip.length() > 15 || !ip.contains(".")) {
return false;
}
// 存放由 . 分隔开的每个部分。
String[] ipArr = ip.split("\\.");
if (ipArr.length != 4) {
return false;
}
for (String item : ipArr) {
if (null == item || 0 == item.length()) {
return false;
}
if (item.length() > 1 && item.startsWith("0")) {
return false;
}
if (item.length() >= 4) {
return false;
}
char[] charArr = item.toCharArray();
for (char c : charArr) {
if (c < '0' || c > '9') {
return false;
}
}
int itemInt = Integer.parseInt(item);
if (itemInt < 0 || itemInt > 255) {
return false;
}
}
return true;
}
}