我正在使用以下代码来比较返回的 IP 地址(使用类似于 express 的 node-restify):
var checkIP = function (config, req) {
var ip = req.connection.remoteAddress.split('.'),
curIP,
b,
block = [];
for (var i=0, z=config.ips.length-1; i<=z; i++) {
curIP = config.ips[i].split('.');
b = 0;
// Compare each block
while (b<=3) {
(curIP[b]===ip[b] || curIP[b]==='*') ? block[b] = true : block[b] = false;
b++;
}
// Check all blocks
if (block[0] && block[1] && block[2] && block[3]) {
return true;
}
}
return false;
};
config.ips
包含一个数组(从代码中应该很明显)可以是特定的或通配符的 IP。
这行得通,但似乎有一种更有效的方法可以做到这一点。只是好奇是否有人对简化此操作或使其更有效的方法有任何建议。当我介绍这个时,我的请求时间几乎翻了一番,如果可能的话,我想挤出一些加载时间。