我有这样的数组
var ALLOW_SUBNET = ['192.168.1.', '192.168.2.', '192.168.3.' , '192.168.4.'];
我可以使用自己的功能获取PC Client的IP地址:
getIPClient()
var ipclient = input.getIPClient();
我的问题是如何检查客户端IP是否在允许的子网内,我尝试使用indexOf()函数,但结果错误。
例如:
if IP Client is 192.168.1.115 => allow
if IP Client is 192.168.5.115 => deny.
最佳答案
您可以使用 Array#some
并检查ALLOW_SUBNET
的一部分是否在ip
的0
内部。
function check(ip) {
return ALLOW_SUBNET.some(function (a) { return !ip.indexOf(a); });
}
var ALLOW_SUBNET = ['192.168.1.', '192.168.2.', '192.168.3.', '192.168.4.'];
console.log(check('192.168.1.115'));
console.log(check('192.168.5.115'));
带
String#startsWith
的ES6function check(ip) {
return ALLOW_SUBNET.some(a => ip.startsWith(a));
}
var ALLOW_SUBNET = ['192.168.1.', '192.168.2.', '192.168.3.', '192.168.4.'];
console.log(check('192.168.1.115'));
console.log(check('192.168.5.115'));