【问题标题】:IP Check Via ListIP 检查通过列表
【发布时间】:2017-02-21 10:17:42
【问题描述】:

我有一个我所在国家/地区的 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']))

【问题讨论】:

  • 您无法使用.htaccess 执行此操作。您需要使用php检查它,然后重定向到新地址。

标签: php .htaccess ip


【解决方案1】:

*1).htaccess 文件

Apache Web 服务器提供的访问者阻止功能使我们能够拒绝特定访问者的访问,或允许特定访问者访问。这对于阻止不受欢迎的访问者或只允许网站所有者访问网站的某些部分非常有用,例如管理*

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,如果两者都不满足,则请求被拒绝。

文档 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)

【讨论】:

    【解决方案2】:

    1;您可以通过 IP 重定向到一个保留页面:

    # Redirect a user to /specific_page.html based on their IP address.
    RewriteCond %{REMOTE_ADDR} ^10\.0\.0\.2$ [OR]
    RewriteCond %{REMOTE_ADDR} ^127\.0\.0\.2$
    RewriteCond %{REQUEST_URI} !specific_page\.html$
    RewriteCond %{REQUEST_URI} !\.(js|png|gif|jpg|css)$
    RewriteRule ^ /specific_page.html [R=302,L]
    

    2;请参阅推荐使用http://www.hostip.info/use.htmlthis question/answer

    【讨论】:

    • 它适用于静态ip,您不能使用文件中的ip列表。
    • 抱歉,没看到。如果文件中有列表,则必须在 global/header/bootstrap 文件中使用 PHP 来检查和重定向。如果你有一个列表,为什么不把那个列表放在 htaccess 中呢?
    • 你能告诉我如何从文件中读取 ip 列表并插入到 .htaccess 中吗?
    • 如我上面的回答; RewriteCond %{REMOTE_ADDR} ^127\.0\.0\.1$ [OR].
    • 那是两个ip。您想如何将list.txt 文件的内容插入到 htaccess 中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 2014-09-16
    • 2015-04-27
    • 2021-02-10
    • 2013-05-11
    相关资源
    最近更新 更多