我發現很難找出如何創建一個片段,可以告訴我,如果一個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