结合前面几位大佬的题解,整出一个Java版.这里有个大坑,若是ip是0或者127开头的直接忽略,即使子网掩码是非法的,也不能将此算到error里去。 具体实现 查看ip第一段是否为“0”或“127”,若是忽略; 判断子网掩码是否合法,如果满足下列条件之一即为非法掩码 数字段数不为4 在二进制下,不满足前面连续是1,然后全是0 在二进制下,全为0或全为1 判断IP地址是否合法,如果满足下列条件之一即为非法地址 数字段数不为4,比如存在空段,即【192..1.0】这种; 某个段的数字大于255 判断ip是否是ABCDE类地址,若是对应类加一。 所有的IP地址划分为 A,B,C,...