在下載到碼農很忙 IP 地址數據庫後,咱們能夠將其存儲在 MySQL 數據庫中,並在須要查詢某個 IP 對應的位置數據時,經過 SQL 語句獲取正確的結果。這是一種很便捷的使用方式,而且在增長了恰當的索引後,能夠取得不錯的搜索效果。數據庫
首先,須要在 MySQL 數據庫中添加數據表:工具
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for t_ip_data -- ---------------------------- DROP TABLE IF EXISTS `t_ip_data`; CREATE TABLE `t_ip_data` ( `Id` INT ( 11 ) NOT NULL AUTO_INCREMENT, `BeginIPAddress` VARCHAR ( 255 ) NOT NULL, `BeginIPNumber` BIGINT ( 20 ), `EndIPAddress` VARCHAR ( 255 ) NOT NULL, `EndIPNumber` BIGINT ( 20 ), `CC` VARCHAR ( 255 ), `Continent` VARCHAR ( 255 ), `Flag` VARCHAR ( 255 ), `Country` VARCHAR ( 255 ), `Province` VARCHAR ( 255 ), `City` VARCHAR ( 255 ), `Tag` VARCHAR ( 255 ), `Isp` VARCHAR ( 255 ), PRIMARY KEY ( `Id` ) USING BTREE, INDEX `BeginIPNumber` ( `BeginIPNumber` ) USING BTREE ) ENGINE = INNODB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; SET FOREIGN_KEY_CHECKS = 1;
以後,使用 Navicat 等工具,將碼農很忙 IP 地址數據庫提供的數據導入到數據表 t_ip_data
中:spa
若是不是第一次導入數據,注意將【導入模式】設置爲【複製】:code
數據導入成功後,須要使用如下 SQL 語句對 BeginIPNumber 和 EndIPNumber 進行修正:blog
UPDATE t_ip_data SET BeginIPNumber = INET_ATON(BeginIPAddress), EndIPNumber = INET_ATON(EndIPAddress);
修正完成的數據,BeginIPNumber 和 EndIPNumber 就被填入了數值:索引
以後,使用如下 SQL 語句便可進行數據查詢:ip
SELECT * FROM t_ip_data WHERE BeginIPNumber <= INET_ATON( '要查詢的 IPv4 地址' ) ORDER BY BeginIPNumber DESC LIMIT 1
示例查詢以下:ci