mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
fixed isNetworkAWithinNetworkB
This commit is contained in:
parent
acef5c9f5c
commit
a2de4f7cf5
@ -613,15 +613,16 @@ public class NetUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isNetworkAWithinNetworkB(String cidrA, String cidrB) {
|
public static boolean isNetworkAWithinNetworkB(String cidrA, String cidrB) {
|
||||||
Long cidrALong = cidrToLong(cidrA);
|
Long[] cidrALong = cidrToLong(cidrA);
|
||||||
Long cidrBLong = cidrToLong(cidrB);
|
Long[] cidrBLong = cidrToLong(cidrB);
|
||||||
if (cidrALong == null || cidrBLong == null) {
|
if (cidrALong == null || cidrBLong == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return (cidrALong.longValue() & cidrBLong.longValue()) == cidrBLong.longValue();
|
long shift = 32 - cidrBLong[1];
|
||||||
|
return ((cidrALong[0]>>shift) == (cidrBLong[0]>>shift));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Long cidrToLong(String cidr) {
|
public static Long[] cidrToLong(String cidr) {
|
||||||
if (cidr == null || cidr.isEmpty()) {
|
if (cidr == null || cidr.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -643,7 +644,9 @@ public class NetUtils {
|
|||||||
}
|
}
|
||||||
long numericNetmask = (0xffffffff >> (32 - cidrSizeNum)) << (32 - cidrSizeNum);
|
long numericNetmask = (0xffffffff >> (32 - cidrSizeNum)) << (32 - cidrSizeNum);
|
||||||
long ipAddr = ip2Long(cidrAddress);
|
long ipAddr = ip2Long(cidrAddress);
|
||||||
return ipAddr & numericNetmask;
|
Long[] cidrlong = {ipAddr & numericNetmask, (long)cidrSizeNum};
|
||||||
|
return cidrlong;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getCidrSubNet(String cidr) {
|
public static String getCidrSubNet(String cidr) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user