3

ワイルドカード サブネットを最小の cidr サブネット リストに変換する必要があります。例えば:

1.2.3.4/255.0.255.0
converted to
1.0.3.0/24
1.1.3.0/24
1.2.3.0/24
1.3.3.0/24
...
1.254.3.0/24
1.255.3.0/24

上記の例は簡単ですが、この 1.2.3.4/252.0.128.0 のようなワイルドカード サブネットの場合はより複雑になります。

Javaにそのためのライブラリがありますか。

前もって感謝します。

4

2 に答える 2

3

ApacheSubnetUtilsから使用できます

SubnetUtils(String address, String mask) 引数として 2 つの文字列、宛先 IP およびネットワーク マスクを受け取るコンストラクタがあります。

次に、ネストされたクラスSubnetUtilsInfoとそのメソッドを使用して、必要なものを取得できます。

于 2012-09-20T13:57:48.120 に答える
0

TCP/IP で使用されるマスクには 3 種類あります。サブネット マスク、単純なビット マスク、およびワイルドカード マスク。サブネット マスクは連続している必要があります。一連の 1 の後に続く一連の 0 を意味します。1991 年からこのようになっています (RFC 1219)。このマスクの使用は、問題のサブネットのネットワーク番号、ブロードキャスト番号、および有効なホストをデバイスが理解できるようにするためです。単純なビット マスクはアクセス制御で使用され、不連続にすることができます。Cisco ASA ファイアウォール、iptables、およびその他のシステムは、これらのタイプのマスクを使用して、IP アドレスの特定の部分をテストします。たとえば、10.1.0.254 255.255.0.255 は、最初のオクテットが 10、2 番目が 1、4 番目が 254 であることをテストしていますが、3 番目のオクテットの値は 0 ~ 255 にすることができます。ワイルドカード マスクは単純なビット マスクを逆にしたもので、Cisco のルーターやスイッチで一般的に使用されます。これらは不連続であっても構いません。前と同じ例を使用すると、マスクを反転して 10.1.0.254 0.0.255.0 のテストを取得します。このテストは、正確な値に一致するオクテット 1、2、および 4 を考慮するという点で前の例と同じですが、オクテット 3 は異なる場合があります。このすべての重要なポイントは、2 つの異なるものを変換しようとしているということです。サブネット マスクは、単純なビット マスク/ワイルドカード マスクと同じようには使用されません。一方から他方への変換は不可能です。シンプル/ワイルドカード マスクが連続している場合でも、マスクは実際に使用されているサブネット マスクを表していない場合があります。このすべての重要なポイントは、2 つの異なるものを変換しようとしているということです。サブネット マスクは、単純なビット マスク/ワイルドカード マスクと同じようには使用されません。一方から他方への変換は不可能です。シンプル/ワイルドカード マスクが連続している場合でも、マスクは実際に使用されているサブネット マスクを表していない場合があります。このすべての重要なポイントは、2 つの異なるものを変換しようとしているということです。サブネット マスクは、単純なビット マスク/ワイルドカード マスクと同じようには使用されません。一方から他方への変換は不可能です。シンプル/ワイルドカード マスクが連続している場合でも、マスクは実際に使用されているサブネット マスクを表していない場合があります。

于 2021-01-06T20:11:04.760 に答える