/* 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:10strcmp 用的很潇洒。 回应
- Ken
#2/2009-06-14 03:46跟双域名差不多哈,还是要支持下。 回应
- bolo
#3/2009-06-14 09:32想不出对做博客有什么用。 回应
- 芒果 对 说
#4/2009-06-14 10:03控制访问,按照指定 IP 跳转至不同页面。 回应
- francis
#5/2009-12-10 09:13传说中的 PHP 位移操作? 哈哈,学习了~ 回应
- mymoola
#6/2009-12-12 11:06如果要引导英文区的 IP 访问英文站点,是不是把IP地指段定义成国内的就成?然后用这一段就可以跳转英文的站点吗? = 0 && $to
不过貌似国内和港澳台 IP 地址段挺多啊 ,请问这个怎么可以实现? 回应
- Kam
#7/2011-01-27 15:45十分强大!测试中! 回应
- gw
#8/2011-07-12 13:16学习! 回应
- nilo 对 说
#9/2011-10-06 20:15那就没必要从IP入手了,直接从浏览器或者操作系统的语言入手,判定中文的转向中文页面,非中文跳转到E文即可.有看到过这样的代码. 回应
我简单说几句