仓酷云
标题:
PHP编程:限制IP会见的思绪和PHP代码
[打印本页]
作者:
仓酷云
时间:
2015-2-3 23:56
标题:
PHP编程:限制IP会见的思绪和PHP代码
学会了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系统的课程,对于数据库的操作。
作者:
蒙在股里
时间:
2015-2-6 13:07
实践是检验自己会不会的真理。
作者:
小妖女
时间:
2015-2-16 05:25
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者:
小魔女
时间:
2015-3-1 21:42
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者:
不帅
时间:
2015-3-1 23:12
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者:
若相依
时间:
2015-3-7 08:53
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者:
深爱那片海
时间:
2015-3-14 15:42
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者:
飘飘悠悠
时间:
2015-3-21 11:33
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者:
谁可相欹
时间:
2015-3-25 06:25
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者:
再见西城
时间:
2015-4-4 10:20
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者:
小女巫
时间:
2015-4-9 04:13
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者:
第二个灵魂
时间:
2015-4-16 15:10
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox 支持的不是很好,所以能少用还是少用的好。
作者:
兰色精灵
时间:
2015-4-26 05:11
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者:
灵魂腐蚀
时间:
2015-5-4 02:34
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者:
愤怒的大鸟
时间:
2015-5-9 17:45
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者:
仓酷云
时间:
2015-6-12 23:21
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者:
简单生活
时间:
2015-6-14 22:14
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者:
admin
时间:
2015-6-21 20:31
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
作者:
冷月葬花魂
时间:
2015-6-23 02:24
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者:
只想知道
时间:
2015-6-30 21:08
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2