我发现很难找出如何创建一个片段,可以告诉我,如果一个ip匹配黑名单ips,也包含通配符的数据库。 例如:PHP片段匹配通配的IPv4字符串
$global_blacklistedips = Array ('10.10.*.*', '192.168.1.*');
function checkBlacklistedIp ($ip) {
// some kind of regular expression
// match? return true;
// else return false;
}
任何人都可以帮忙吗?我唯一想到的方法是编写一个非常非常丑陋的“状态机”,它在1,2或3个通配符之间切换(4个通配符会导致所有的黑名单),但是这种编码实际上是一团糟
谁是这个名单会是谁?如果很小:用`[0-9] +`替换`*`并匹配正则表达式。如果大:使它成为嵌套数组的树(4级)。 – mvds 2011-01-09 01:21:15