0

我写了一个小程序来验证 IP 地址,尤其是。在将 IP 地址检查器传递给 IP 地址检查器之前,剥离一些元数据,例如 IP v4 地址的范围和网络掩码。

在剥离 IP 地址的网络掩码时,我需要生成的 IP 地址(我称其为基本 IP 地址)和单独变量中的网络掩码,以进行进一步验证。

我想知道我在 cutOffNetMask 方法中的做法是否可以,或者我是否应该拆分工作

  1. 提取基础ip
  2. 提取网络掩码

分成不同的方法?

我设置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;
  }
4

0 回答 0