Mar 17 21 3:49 am
//return true or false depending on whether you wish the
//'Yes' or 'No' path to be taken
function filter(User, Binding, Session, Event)
{
function IsIpInCidr(ip, cidr)
{
var cidrIp = cidr.split('/')[0];
var cidrSm = cidr.split('/')[1];
return (IPnumber(ip) & IPmask(cidrSm)) == (IPnumber(cidrIp) & IPmask(cidrSm));
}
function IPnumber(IPaddress) {
var ip = IPaddress.match(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/);
if(ip) {
return (+ip[1]<<24) + (+ip[2]<<16) + (+ip[3]<<8) + (+ip[4]);
}
return null;
}
function IPmask(maskSize) {
return -1<<(32-maskSize);
}
var i;
var list = ["192.168.1.0/24", "192.168.2.0/24"]
for (i in list) {
if (IsIpInCidr(Session.ClientIP, list[i])) {
return true
}
}
return false;
}
Mar 17 21 5:54 pm
// converts string form of IP address in dotted notation to an integer.
function IPnumber(IPaddress)
{
var str = String(IPaddress);
var ip = Strings.Tokenize(str, ".");
var ipnum = Number(ip[0]);
ipnum *= 256;
ipnum += Number(ip[1]);
ipnum *= 256;
ipnum += Number(ip[2]);
ipnum *= 256;
ipnum += Number(ip[3]);
return ipnum;
}
// returns masked value of IP using mask size. IP in string form.
function IPMasked(ipStr, maskSize)
{
var bitsToClear = (32-maskSize);
var ipMasked = IPnumber(ipStr);
ipMasked = ipMasked >> bitsToClear;
ipMasked = ipMasked << bitsToClear;
return ipMasked;
}
// returns true if ip is in network defined by cidr
function IsIpInCidr(ip, cidr)
{
var tokens = Strings.Tokenize(cidr, "/");
return(IPMasked(ip, tokens[1]) == IPMasked(tokens[0], tokens[1]));
}
//return true or false depending on whether you wish the
//'Yes' or 'No' path to be taken
function filter(User, Binding, Session, Event)
{
var i = 0;
var list;
// assign values to list
list[0]="192.168.3.0/24";
list[1]="192.168.2.0/24";
list[2]="192.168.4.0/24";
list[3]="0.0.0.0/0";
// convert ClientIp to a string for the functions
var ip = String(Session.ClientIp);
// loop over list of CIDR network descriptors
for (i = 0 ; i < lengthOf(list); i++)
{
if(IsIpInCidr(ip, list[i]))
{
return true
}
}
return false;
}
Mar 17 21 6:26 pm
Mar 17 21 9:23 pm