我有这样的阵列
var ALLOW_SUBNET = ['192.168.1.','192.168.2.','192.168.3.','192.168.4.'];
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的一部分是否在位置0的ip内.
function check(ip) { return ALLOW_SUBNET.some(function (a) { return !ip.indexOf(a); }); } var ALLOW_SUBNET = ['192.168.1.','192.168.4.']; console.log(check('192.168.1.115')); console.log(check('192.168.5.115'));
function check(ip) { return ALLOW_SUBNET.some(a => ip.startsWith(a)); } var ALLOW_SUBNET = ['192.168.1.','192.168.4.']; console.log(check('192.168.1.115')); console.log(check('192.168.5.115'));