prefix.java

来自「NetFlow可用于网络规划、负载均衡、安全监控等.NetFlow分析软件」· Java 代码 · 共 44 行

JAVA
44
字号
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 + =
减小字号Ctrl + -
显示快捷键?