fix ip verification functions

This commit is contained in:
zefie
2022-10-07 21:28:54 -04:00
parent 9edccab487
commit ba13780ab6
2 changed files with 22 additions and 10 deletions

View File

@@ -37,12 +37,18 @@ class WTVAdmin {
} }
isInSubnet(ip, subnet) { isInSubnet(ip, subnet) {
var mask, base_ip, long_ip = this.ip2long(ip); if (subnet.indexOf('/') == -1) {
if ((mask = subnet.match(/^(.*?)\/(\d{1,2})$/)) && ((base_ip = this.ip2long(mask[1])) >= 0)) { var mask, base_ip, long_ip = this.ip2long(ip);
var freedom = Math.pow(2, 32 - parseInt(mask[2])); var mask2, base_ip2, long_ip2 = this.ip2long(ip);
return (long_ip > base_ip) && (long_ip < base_ip + freedom - 1); return (long_ip == long_ip2);
} else {
var mask, base_ip, long_ip = this.ip2long(ip);
if ((mask = subnet.match(/^(.*?)\/(\d{1,2})$/)) && ((base_ip = this.ip2long(mask[1])) >= 0)) {
var freedom = Math.pow(2, 32 - parseInt(mask[2]));
return (long_ip > base_ip) && (long_ip < base_ip + freedom - 1);
}
} }
else return false; return false;
} }
rejectConnection(reason_is_ssid) { rejectConnection(reason_is_ssid) {

View File

@@ -680,12 +680,18 @@ class WTVClientSessionData {
}; };
var isInSubnet = function (ip, subnet) { var isInSubnet = function (ip, subnet) {
var mask, base_ip, long_ip = ip2long(ip); if (subnet.indexOf('/') == -1) {
if ((mask = subnet.match(/^(.*?)\/(\d{1,2})$/)) && ((base_ip = ip2long(mask[1])) >= 0)) { var mask, base_ip, long_ip = this.ip2long(ip);
var freedom = Math.pow(2, 32 - parseInt(mask[2])); var mask2, base_ip2, long_ip2 = this.ip2long(ip);
return (long_ip > base_ip) && (long_ip < base_ip + freedom - 1); return (long_ip == long_ip2);
} else {
var mask, base_ip, long_ip = this.ip2long(ip);
if ((mask = subnet.match(/^(.*?)\/(\d{1,2})$/)) && ((base_ip = this.ip2long(mask[1])) >= 0)) {
var freedom = Math.pow(2, 32 - parseInt(mask[2]));
return (long_ip > base_ip) && (long_ip < base_ip + freedom - 1);
}
} }
else return false; return false;
}; };
var rejectSSIDConnection = function (blacklist) { var rejectSSIDConnection = function (blacklist) {