禁用IP的mysql+php设计
生活随笔
收集整理的這篇文章主要介紹了
禁用IP的mysql+php设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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_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" ;?
?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1755772
總結
以上是生活随笔為你收集整理的禁用IP的mysql+php设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指offer(三)
- 下一篇: HCNP路由交换学习指南(第一章)学习笔