|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。会见 那天写本人的网站,想到要有关于限制IP的功效,最少要包含可以在后台设置要限制的IP,还有,可以对IP段停止限制,好比 192.168.0.* 一样的就可以够限制全部段,冥思苦想,用了好几个if判别才处理,把复杂的代码以下:(法式中利用了phplib中的db类)
<?php
/*********************************************
* 文件:limitip.php
* 用处:IP限制法式
* 版本:v1.0
* 日期:2005-1-7 12:34
* 作者:heiyeluren (heiyeluren@163.com)
* 版权:http://www.unixsky.net
*********************************************/
error_reporting(7);
session_start();
// 发送字符头信息
if ($headercharset)
header("Content-Type:text/html; charset=gb2312");
// 加载公共文件
require_once("config.php");
require_once("global.php");
require_once("db_mysql.php");
/***************** 停止客户端可否会见本网站校验 ************/
// 获得客户端IP
if(getenv('HTTP_CLIENT_IP')) {
$client_ip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$client_ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$client_ip = getenv('REMOTE_ADDR');
} else {
$client_ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
// 分化客户端IP
$cip = explode(".", $client_ip);
// 毗连数据库
$db = new DB_Sql();
$err = $db->connect();
/* 限制近程IP会见, PS: 这段代码真晕,呵呵,用了8个if, -_-# */
// 从数据库中提取存储的要限制的IP地址
$query_str = "SELECT limit_ip FROM us_limitip";
$db->query($query_str);
// 把了局轮回提取,一个个停止校验
while ($db->next_record())
{
$limit_ip = $db->f("limit_ip");
$lip = explode(".", $limit_ip);
// 假如限制IP的第一个是*或是0的话就跳到毛病页
if (($lip[0]=='*') || ($lip[0]=='0'))
header("Location:../error.php?errid=300");
// 假如恰好客户端IP等于咱们限制IP就跳到毛病页
if ($client_ip==$limit_ip)
header("Location:../error.php?errid=300");
// 假如第一组IP分歧停止第二组IP的婚配
if ($cip[0] == $lip[0])
{
// 假如第二组限制IP是*就跳到毛病页
if ($lip[1]=='*')
header("Location:../error.php?errid=300");
// 第二组IP婚配就停止第三组IP婚配
if ($cip[1]==$lip[1])
{
// 假如第三组限制字符是*就跳到毛病页
if ($lip[2]=='*')
header("Location:../error.php?errid=300");
// 假如第三组IP婚配就跳到第三组校验
if ($cip[2]==$lip[2])
{
// 假如第四组限制IP是*或0就跳到毛病页
if (($lip[3]=='*') || ($lip[3]=='0'))
header("Location:../error.php?errid=300");
}
}
}
}
// 释放数据库查询了局
$db->free();
/****************** IP校验停止 ******************/
?>
代码只是我初步的一个设法,一定有缺乏,假如高手有更好建议请不惜赐教!
培训的第三阶段,开始接触MYSQL,设计数据库,学习PHP如何去连接MYSQL数据库。对于MYSQL,我并不陌生,因为学校开设了Linux系统的课程,对于数据库的操作。 |
|