禁用IP的mysql+php设计
来源:互联网 发布:虎嗅 知乎 编辑:程序博客网 时间:2024/06/14 20:55
禁用IP是安全的一部份。下面就分析下禁止IP的php+mysql的程序设计,不足之处,请大家提出意见。
就来个简单的例子来说明一下。
CREATE TABLE `banned` (
`ip_start` int(10) NOT NULL default '0',
`ip_end` int(10) NOT NULL default '0',
) TYPE=MyISAM COMMENT='禁止IP列表';
上面是新建一个数据表,表有两个字段用来记录要禁用IP的起始。ip_tart是开始,ip_end是结束。ip_start的值要比ip_end值小或相等。范围 是0~4294967295。如果只有一个IP,那么这条记录ip_start与ip_end的字段值相同。
注意,这两个字段都是以int类型出现的,为什么呢?因为一个ip是可以转换为一个相对应的十进制数字。数字大小的对比占有很强的优势。
下例输入一个禁止的IP。127.0.0.1
INSERT INTO `banned` (`ip_start`, `ip_end`) VALUES (INET_ATON( '127.0.0.1' ),INET_ATON( '127.0.0.1' ));
如果要禁用一段IP,如192.168.1.1~192.168.255.2255
INSERT INTO `banned` (`ip_start`, `ip_end`) VALUES (INET_ATON( '192.168.1.1' ),INET_ATON( '192.168.255.255' ));
我们可以从数据表中看到,上面插入的记录的 ip_start与ip_end字段值是2130706433。因为mysql的函数INET_ATON将ip转为了数字形式。
现在,禁止一个IP,只要看一下,这个IP是不是在这个数据表里所包函的一条记录。
$ip = '127.0.0.1';
$sql = "SELECT count(*) FROM `banned` WHERE ip_start >=INET_ATON('$ip') and ip_end <= INET_ATON('$ip') ";
$result = mysql_query($sql);
$banned = mysql_fetch_array($result);
echo $banned[0] ? "禁止IP" : "通行IP" ;
就来个简单的例子来说明一下。
CREATE TABLE `banned` (
`ip_start` int(10) NOT NULL default '0',
`ip_end` int(10) NOT NULL default '0',
) TYPE=MyISAM COMMENT='禁止IP列表';
上面是新建一个数据表,表有两个字段用来记录要禁用IP的起始。ip_tart是开始,ip_end是结束。ip_start的值要比ip_end值小或相等。范围 是0~4294967295。如果只有一个IP,那么这条记录ip_start与ip_end的字段值相同。
注意,这两个字段都是以int类型出现的,为什么呢?因为一个ip是可以转换为一个相对应的十进制数字。数字大小的对比占有很强的优势。
下例输入一个禁止的IP。127.0.0.1
INSERT INTO `banned` (`ip_start`, `ip_end`) VALUES (INET_ATON( '127.0.0.1' ),INET_ATON( '127.0.0.1' ));
如果要禁用一段IP,如192.168.1.1~192.168.255.2255
INSERT INTO `banned` (`ip_start`, `ip_end`) VALUES (INET_ATON( '192.168.1.1' ),INET_ATON( '192.168.255.255' ));
我们可以从数据表中看到,上面插入的记录的 ip_start与ip_end字段值是2130706433。因为mysql的函数INET_ATON将ip转为了数字形式。
现在,禁止一个IP,只要看一下,这个IP是不是在这个数据表里所包函的一条记录。
$ip = '127.0.0.1';
$sql = "SELECT count(*) FROM `banned` WHERE ip_start >=INET_ATON('$ip') and ip_end <= INET_ATON('$ip') ";
$result = mysql_query($sql);
$banned = mysql_fetch_array($result);
echo $banned[0] ? "禁止IP" : "通行IP" ;
- 禁用IP的mysql+php设计
- 禁用IP的mysql+php设计
- php禁用某ip或者ip地址段访问
- 禁用php函数的设置
- 禁用php函数的设置
- 基于PHP+MySQL的聊天室设计
- 基于PHP+MySQL的聊天室设计
- Day 3:php+mysql留言板的设计
- 基于php+mysql的博客设计
- nginx封ip,禁用IP段的设置说明
- php mysql ip地址转换
- PHP中禁用cookie后的session
- 虚拟主机禁用php fsockopen的解决方法
- 一些高危php函数的禁用
- 一些需要禁用的PHP危险函数
- mysql禁用autocommit,以及遇到的问题
- mysql禁用autocommit,以及遇到的问题
- mysql禁用autocommit,以及遇到的问题
- 不可不听的9个职场故事
- 下一代OCG
- Pair Programming (结对编程)
- 计算机网络
- JCL入门
- 禁用IP的mysql+php设计
- 国内 voip 在trixbox的中继,包括 sip,iax2 协议
- 我的第一桶金?? 金融机具?ATM?TVM?APM...?
- 类的定义
- 中了Win32/Dialer.Delsim 病毒,解决方法
- FreeBSD 6.2 使用记录
- 数据导出Excel问题[内容由网上收集]
- 获取Oracle当前会话的一些属性
- 遗忘