2013-04-18 39 views
0

我有一小段程式码,如果一个特定的IP地址允许运行脚本摸出:如何使此IP检查代码更有效?

$allowable_ips = array(
    '192.168.0.', 
    '8.8.8.8', 
); 

$is_allowed = (bool) array_filter(array_map(function($value){ 
    return (substr($_SERVER['REMOTE_ADDR'], 0, strlen($value)) == $value); 
}, $allowable_ips)); 

if(!$is_allowed) { 
    die('Denied.'); 
} 

难道这代码可以进一步缩短?

+0

试着问这样的http://codegolf.stackexchange.com:d你保证得到最短的码长....如果你愿意完全失去可读性。 –

+0

我想你必须在'codereview'中发布这个问题。 –

+1

[如何检查IP地址是否在PHP的两个IP范围内?](http://stackoverflow.com/questions/11121817/how-to-check-an-ip-address-is-within工作范围变换的二-a-IPS功能于PHP)。解决方案完全适用于单个IP。 –

回答

2

你可以跳过array_map一部分,只是使用array_filter

$is_allowed = (bool) array_filter($allowable_ips,function($value){ 
    return (substr($_SERVER['REMOTE_ADDR'], 0, strlen($value)) == $value); 
}); 
+0

啊是的。当然,我可以! – Treffynnon