java 判断IP地址是否合法,是IPV4,还是IPV6
招银撕代码题:
手撕代码,判断一个字符串是ipv6还是ipv4或者两者都不是。
什么是IPV4 IPV6
- 举个例子:
- IPv4:
172.16.254.1——ipv4
1e1.4.5.6 ——no
12…33.4——no
1212.132123.33434.41221——no- IPV6
2001:0db8:85a3:0:0:8A2E:0370:7334:——no
2001:0db8:85a3:000:0:8A2E:0370:7334——ipv6
2001:0db8:85a3:000:0:8A2E:0370:73d34——no
::——no
::1——Pv6
::1——no
123::566::ae4——no
2001:0db8:85a3:000:0:8A2E::——IPv6
2001:0db8:85a3:vcsd:0:8A2E::——no
package 面试题目必会;/**
* Copyright (C), 2019-2021
* author candy_chen
* date 2021/5/27 20:24
*
* @Classname IPV4IPV6
* Description: java 判断IP地址是否合法,是IPV4,还是IPV6
*/
/**
*
*/
public class IPV4IPV6 {
//判断所有的IP地址
public String validIPAddressAll(String IP){
if (!IP.contains(".") && !IP.contains(":")){
return "Neither";
}
//如果是IPV4
if (IP.contains(".")){
if (IP.endsWith(".")){
return "Neither";
}
//ip地址以.进行分割
String[] arr = IP.split("\\.");
if (arr.length != 4){
return "Neither";
}
for (int i = 0; i < 4; i++) {
if (arr[i].length() == 0 ||<