var ipmapping = new Array();

function mapStreamToIP(ipToTest) {	
    for (var key in ipmapping) {
        var ipRule = key.split("/");
        var ipAddress = ipRule[0];
        var maskSize = ipRule.length > 1 ? ipRule[1] : 32;

        if (ipMatches(ipAddress, ipToTest, maskSize)) {
            return ipmapping[key];
        }
    }

    return ipmapping["0.0.0.0/0"];
};

function ipNum(ipStr) {
    var ip = ipStr.split(".");
    return (+ip[0] << 24) + (+ip[1] << 16) + (+ip[2] << 8) + (+ip[3]);
}

function ipMask(maskSize) {
    return 0xFFFFFFFF << (32 - maskSize);
}

function ipMatches(ipAddress, ipToTest, maskSize) {
    return (ipNum(ipAddress) & ipMask(maskSize)) == (ipNum(ipToTest) & ipMask(maskSize));
}
