我的国家有一个ip列表文件,就像这样(txt文档):
45.123.116.0/22
5.2.80.0/21
5.11.128.0/17
5.23.120.0/21
5.24.0.0/14
etc
我有两个问题。
1-如果他通过.htaccess文件进入该列表,我可以转发该用户吗? (如果他是,请使用此地址..如果不是这个地址)
2-如何检查用户是否在我的国家/地区'通过PHP?我的意思是,我该怎么说呢...
if (strstr('list.txt',$_SERVER['REMOTE_ADDR']))
答案 0 :(得分:0)
* 1).htaccess文件
Apache Web Server提供的访问者阻止功能使我们能够拒绝访问特定访问者,或允许访问特定访问者。这对于阻止不受欢迎的访问者或仅允许网站所有者访问网站的某些部分非常有用,例如管理*
ErrorDocument 403 /specific_page.html
area.*
order allow,deny
deny from 255.0.0.0
deny from 123.45.6.
allow from all
当使用“Order Allow,Deny”指令时,请求必须与Allow或Deny匹配,如果两者都不满足,则请求被拒绝。
doc 1)http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order
doc 2)http://www.htaccess-guide.com/deny-visitors-by-ip-address/
2)概念证明(不能说这就是......)
$current_ip = $_SERVER['REMOTE_ADDR'];
$valid_ip = false;
// Convert IPs to Regex
foreach($cfg['ipallowed'] as $index=>$ip);
{
$ip = str_replace('.', '\\.', $ip);
$ip = str_replace('*', '[0-9]|^1?\\d\\d$|2[0-4]\\d|25[0-5]');
if (preg_match($ip, $current_ip)
{
$valid_up = true;
break;
}
}
if ($valid_ip)
答案 1 :(得分:0)