====== INET_ATON ======
利用 MySQL 內建函式將 IP 轉換成 int,範圍是 0 ~ 4294967295。
建立 table
CODE:
[Copy to clipboard]
CREATE TABLE `banned` (
`ip_start` int(10) NOT NULL default '0',
`ip_end` int(10) NOT NULL default '0',
) TYPE=MyISAM COMMENT='禁止IP列表';
禁用一段IP,如 192.168.1.1 ~ 192.168.255.255
INSERT INTO `banned` (`ip_start`, `ip_end`)
VALUES (INET_ATON( '192.168.1.1' ),INET_ATON( '192.168.255.255' ));
查詢 IP 是否被禁用:
$ip = '192.168.123.45';
$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" ;