0

私はIP アドレスを検証する小さなプログラムを書きました。IP アドレス チェッカーに渡す前に、IP v4 アドレスの範囲やネットワーク マスクなどのメタデータを取り除きます。

IP アドレスのネットワーク マスクを削除する際、さらに検証するために、結果の IP アドレス (私はこれをベース IP アドレスと呼んでいます) とネットワーク マスクを個別の変数に入れる必要があります。

cutOffNetMask メソッドで行った方法で問題ないのか、それともジョブを分割する必要があるのか​​ 疑問に思っていました

  1. ベースIPを抽出
  2. ネットワークマスクを抽出します

別々の方法に?

private Integer netMask;私が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