芒果小站

  1. 全球最具业界良心的主机 - DigitalOcean

    毫无疑问,目前做得最好的主机供应商

    猛击这里查看

  2. 芒果小站目前使用的主机 - DigitalOcean

    客服响应快,随时退款,XEN 架构稳定

    猛击这里查看

  3. 最好的日本东京线路主机 - DigitalOcean

    可选弗里蒙特、达拉斯、亚特兰大、纽瓦克、伦敦、东京机房

    猛击这里查看

  • 1
  • 2
  • 3
切换到精简模式
9

PHP 根据 IP 地址控制访问

作者 芒果/分类 代码/发布于 2009-06-13 20:49

有时需要根据 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://mangguo.org/404.html');
else
 header('Location: http://mangguo.org/homepage.html');
?>
版权所有,转载请注明出处。
转载自 <a href="http://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

下面我简单说几句