芒果小站

/* 336x280*/

有时需要根据 IP 地址控制访问,以限制或引导某些访问请求。比如允许局域网段中的访客正常访问,但禁止外网访问。芒果简单介绍用 PHP 脚本实现此功能的方法。

假设有 IP 地址范围 192.168.0.0~192.168.0.255,只允许此 IP 段访问的代码如下:

<?php
$IP = $_SERVER['REMOTE_ADDR'];
$from = strcmp($IP,'192.168.0.0');
$to = strcmp($IP,'192.168.0.255');
if (!($from >= 0 && $to <= 0))
 echo "Access Denied";
else
 echo "Homepage";
?>

从流程上讲,这段代码首先捕获访客 IP 地址,然后判断该 IP 地址是否符合访问条件。符合则正常输出页面,反之拒绝访问。

据此,如果用户 IP 地址满足要求,只需简单输出或包含页面文件即可。文件包含代码如下:

<?php
if (!($from >= 0 && $to <= 0))
 echo "Access Denied";
else
 include('homepage.html')";
?>

当然,也可以按判断结果跳转至不同页面。跳转代码如下:

<?php
if (!($from >= 0 && $to <= 0))
 header('Location: http://www.mangguo.org/404.html');
else
 header('Location: http://www.mangguo.org/homepage.html');
?>
/* 336x280*/
版权所有,转载请注明出处。
转载自 <a href="http://www.mangguo.org/php-access-control-according-to-ip-address/" title="PHP 根据 IP 地址控制访问" rel="bookmark">PHP 根据 IP 地址控制访问 | 芒果小站</a>

已经有 9 条群众意见

  1. 挑战书 /2009-06-13 22:10

    strcmp 用的很潇洒。 回应

    #1
  2. Ken /2009-06-14 03:46

    跟双域名差不多哈,还是要支持下。 回应

    #2
  3. bolo /2009-06-14 09:32

    想不出对做博客有什么用。 回应

    #3
  4. 芒果bolo/2009-06-14 10:03

    控制访问,按照指定 IP 跳转至不同页面。 回应

    #4
  5. francis /2009-12-10 09:13

    传说中的 PHP 位移操作? 哈哈,学习了~ 回应

    #5
  6. mymoola /2009-12-12 11:06

    如果要引导英文区的 IP 访问英文站点,是不是把IP地指段定义成国内的就成?然后用这一段就可以跳转英文的站点吗? = 0 && $to

    不过貌似国内和港澳台 IP 地址段挺多啊 ,请问这个怎么可以实现? 回应

    #6
  7. Kam /2011-01-27 15:45

    十分强大!测试中! 回应

    #7
  8. gw /2011-07-12 13:16

    学习! 回应

    #8
  9. nilomymoola/2011-10-06 20:15

    那就没必要从IP入手了,直接从浏览器或者操作系统的语言入手,判定中文的转向中文页面,非中文跳转到E文即可.有看到过这样的代码. 回应

    #9

我简单说几句

随机推荐

最新评论