📄 prefix.java
字号:
package cai.flow.struct;
import cai.flow.collector.interpretator.IpSegmentManager;
import cai.utils.Util;
public class Prefix extends Address {
public byte mask;
public long dmask;//掩码
public Prefix(long address, byte mask) {
super(address);
dmask = ~((1 << (32 - (mask & 0xff))) - 1);
/**
* 前缀地址
*/
this.address = mask <= 0 || mask >= 32 ? address : address & dmask;
this.mask = mask;
}
public String toString() {
return IpSegmentManager.getInstance().convertIP(address) + "/" + mask;
}
public boolean equals(Prefix o) {
return mask == o.mask && address == o.address;
}
public boolean consists(Address addr) {
return (mask <= 0 || mask >= 32 ? addr.address : addr.address & dmask) == address;
}
public boolean includes(Prefix value) {
if (value.mask < mask)
return false;
if (equals(value))
return true;
return consists(value);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -