Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /* ************************************************************************
 #
 #  DivConq
 #
 #  http://divconq.com/
 #
 #  Copyright:
 #    Copyright 2014 eTimeline, LLC. All rights reserved.
 #
#  License:
#    See the license.txt file in the project's top-level directory for details.
#  Authors:
#    * Andy White
************************************************************************ */
package divconq.net;
// TODO test with IPv4 and IPv6
public class Subnet {
	private String cidr = null
    private byte[] address = null;
    private byte[] mask = null;
    private byte[] filter = null;
    public Subnet(String cidrvaluethrows Exception {
    	this. = cidrvalue;
        String[] parts = cidrvalue.split("/");
        this. = InetAddress.getByName(parts[0]).getAddress();
        int prefix = Integer.parseInt(parts[1]);
        this. = new byte[this..length];
        for (int i = 0; (i < this..length) && (prefix > 0); i++)
        {
        	this.[i] = (prefix >= 8) ? (byte)0xFF : (byte)(0xFF << (8 - prefix));
            prefix -= 8;
        }
        this. = new byte[this..length];
        for (int i = 0; i < this..lengthi++)
        	this.[i] = (byte)(this.[i] & this.[i]);
    }
    public boolean match(byte[] address) {
        if (address.length != address.length
        	return false;
        for (int i = 0; i < address.lengthi++)
            if (this.[i] != (byte)(address[i] & this.[i])) 
            	return false;
        return true;
    }
    @Override
    public String toString() {
        return this.;
    }
New to GrepCode? Check out our FAQ X