net.bican.iplib.sample.Sample.java Source code

Java tutorial

Introduction

Here is the source code for net.bican.iplib.sample.Sample.java

Source

/*
 * 
 * jiplib
 * https://github.com/canbican/jiplib
 * 
 * Copyright 2015 Can Bican <can@bican.net>
 * See the file 'LICENSE' in the distribution for licensing terms.
 * 
 */
package net.bican.iplib.sample;

import java.util.Set;

import net.bican.iplib.AddressIterable;
import net.bican.iplib.CIDR;
import net.bican.iplib.IPAddress;
import net.bican.iplib.IPAddresses;
import net.bican.iplib.Netmask;

import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Range;
import com.google.common.net.InetAddresses;

@SuppressWarnings({ "nls", "javadoc" })
public class Sample {
    public static void main(String[] args) {
        // creating a network range by CIDR address
        CIDR cidr1 = new CIDR("10.10.10.0/30");
        Range<IPAddress> range1 = IPAddresses.fromCIDR(cidr1);

        // iterating a network range
        Iterables.all(new AddressIterable(range1), new Predicate<IPAddress>() {
            @Override
            public boolean apply(IPAddress input) {
                System.out.println(input);
                return true;
            }
        });

        // creating a network range by netmask
        Netmask netmask1 = new Netmask("10.10.20.0/255.255.255.0");
        Range<IPAddress> range2 = IPAddresses.fromNetmask(netmask1);
        System.out.println("range contains ip: "
                + range2.contains(IPAddress.getInstance(InetAddresses.forString("10.10.20.20"))));
        System.out.println("range contains ip: "
                + range2.contains(IPAddress.getInstance(InetAddresses.forString("10.10.21.20"))));

        // creating a network range from an arbitrary interval
        Range<IPAddress> interval = Range.closed(IPAddress.getInstance(InetAddresses.forString("1.0.0.1")),
                IPAddress.getInstance(InetAddresses.forString("1.0.2.22")));
        Set<Range<IPAddress>> ips = IPAddresses.fromInterval(interval);
        for (Range<IPAddress> i : ips) {
            System.out.println(i);
        }
    }
}