我写了一个小程序来验证 IP 地址,尤其是。在将 IP 地址检查器传递给 IP 地址检查器之前,剥离一些元数据,例如 IP v4 地址的范围和网络掩码。
在剥离 IP 地址的网络掩码时,我需要生成的 IP 地址(我称其为基本 IP 地址)和单独变量中的网络掩码,以进行进一步验证。
我想知道我在 cutOffNetMask 方法中的做法是否可以,或者我是否应该拆分工作
- 提取基础ip
- 提取网络掩码
分成不同的方法?
我设置private Integer netMask;
ìn the cutOffNetMask 方法的方式是最先进的还是优雅的方式看起来如何?
这是片段:
public class IPAddress {
private String base;
private Integer netMask;
private boolean ipRangeValid;
private boolean netMaskValid;
public IPAddress(String value){
ipAddress = value;
base = ipAddress;
base.replace(" ","");
if(isIPv6Address(base) == false){
if(hasNetMask(base) == true){
base = cutOffNetMask(base);
}
if(hasIPRange(base) == true){
base = stripOffIPRange(base);
ipRangeValid = ipRangeValid(octet1, octet2, octet3, octet4);
} else {
ipRangeValid = true;
}
}
}
private static boolean hasNetMask(String base){
return (base.indexOf("/") != -1);
}
private static String cutOffNetMask(String base){
netMask = base.substring(base.indexOf("/") + 1);
return base.replace(netMask, "");
}
private String stripOffIPRange(String base){
String[] octets = base.split("\\.");
base = "";
octet1 = new IPOctet(octets[0]);
base = base + (octet1.getBase() + ".");
octet2 = new IPOctet(octets[1]);
base = base + (octet2.getBase() + ".");
octet3 = new IPOctet(octets[2]);
base = base + (octet3.getBase() + ".");
octet4 = new IPOctet(octets[3]);
base = base + (octet4.getBase());
return base;
}