package com.zdjizhi.common; import inet.ipaddr.Address; import inet.ipaddr.AddressStringException; import inet.ipaddr.IPAddress; import inet.ipaddr.IPAddressString; import inet.ipaddr.format.util.AddressTrieMap; import inet.ipaddr.format.util.AssociativeAddressTrie; import inet.ipaddr.ipv4.IPv4Address; import inet.ipaddr.ipv4.IPv4AddressAssociativeTrie; import org.apache.flink.shaded.guava18.com.google.common.collect.Range; import org.apache.flink.shaded.guava18.com.google.common.collect.TreeRangeMap; import java.util.Arrays; import java.util.HashMap; public class IpTest { public static void main(String[] args) throws Exception { IPv4AddressAssociativeTrie trie = new IPv4AddressAssociativeTrie<>(); IPAddress str1 = new IPAddressString("1.2.3.4").getAddress(); IPAddress str2 = new IPAddressString("10.0.0.0/15").getAddress(); IPAddress str3 = new IPAddressString("25.4.2.0/23").getAddress(); IPAddress str4 = new IPAddressString("192.168.8.0/21").getAddress(); IPAddress str5 = new IPAddressString("240.0.0.0/4").getAddress(); IPAddress str6 = new IPAddressString("fc00::0/64").getAddress(); IPAddress str7 = new IPAddressString("fc00::10:1").getAddress(); TreeRangeMap rangeMap = TreeRangeMap.create(); rangeMap.put(Range.closed(str1.getLower(),str1.getUpper()),1); rangeMap.put(Range.closed(str2.getLower(),str2.getUpper()),2); rangeMap.put(Range.closed(str3.getLower(),str3.getUpper()),3); rangeMap.put(Range.closed(str4.getLower(),str4.getUpper()),4); rangeMap.put(Range.closed(str5.getLower(),str5.getUpper()),5); rangeMap.put(Range.closed(str6.getLower(),str6.getUpper()),6); rangeMap.put(Range.closed(str7.getLower(),str7.getUpper()),7); IPAddress pv4 = new IPAddressString("255.255.14.255").getAddress(); IPAddress pv42 = new IPAddressString("1.2.3.4").getAddress(); IPAddress pv43 = new IPAddressString("fc00::").getAddress(); IPAddress pv44 = new IPAddressString("fc00::10:1").getAddress(); System.out.println(rangeMap.get(pv4)); System.out.println(rangeMap.get(pv42)); System.out.println(rangeMap.get(pv43)); System.out.println(rangeMap.get(pv44)); /* System.out.println(str5.toSequentialRange()); // System.out.println(str2.contains(new IPAddressString("10.0.0.2"))); // System.out.println(str5.toAddress().toIPv4().toSequentialRange()); trie.put(str1,1); trie.put(str2,2); trie.put(str3,3); trie.put(str4,4); trie.put(str5,5); AddressTrieMap trieMap = new AddressTrieMap<>(trie); trieMap.forEach((k,v) -> { System.out.println(k.toString() + "--" + v); }); System.out.println("-----------------"); trie.forEach((k) -> System.out.println(k.toString())); System.out.println(str5.contains(pv4)); System.out.println(trie.contains(pv4)); System.out.println(trieMap.get(pv4)); System.out.println(trieMap.containsKey(pv4)); // System.out.println(trieMap.getRange()); // IPAddress str3 = new IPAddressString("fc00::10:1").getAddress(); // IPAddress str4 = new IPAddressString("fc00::10:2/64").getAddress(); // System.out.println(Arrays.toString(str1.mergeToPrefixBlocks(str2,str3,str4))); */ } }