diff --git a/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Segment.java b/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Segment.java index 9c6db14..64cb8c6 100644 --- a/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Segment.java +++ b/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Segment.java @@ -89,6 +89,11 @@ public class Segment { return Util.ipToString(startIP) + "|" + Util.ipToString(endIP) + "|" + region; } + // check if the an IP address in within this segment + public boolean contains(final byte[] ip) { + return Util.ipCompare(ip, startIP) >= 0 && Util.ipCompare(ip, endIP) <= 0; + } + // parser the Segment from an input string public static Segment parse(String input) throws Exception { final String[] ps = input.trim().split("\\|", 3); diff --git a/maker/java/src/test/java/org/lionsoul/ip2region/xdb/MakerTest.java b/maker/java/src/test/java/org/lionsoul/ip2region/xdb/MakerTest.java new file mode 100644 index 0000000..291d101 --- /dev/null +++ b/maker/java/src/test/java/org/lionsoul/ip2region/xdb/MakerTest.java @@ -0,0 +1,15 @@ +package org.lionsoul.ip2region.xdb; + +import org.junit.Test; + +public class MakerTest { + + private static final Log log = Log.getLogger(MakerTest.class); + + @Test + public void testInit() { + log.infof("MaxFilePointer(%d bytes): %d", Maker.RuntimePtrSize, Maker.MaxFilePointer); + log.infof("MaxFilePoiner(5 bytes): %d", ((1L << (5 * 8)) - 1)); + log.infof("MaxFilePoiner(6 bytes): %d", ((1L << (6 * 8)) - 1)); + } +}