· 8 years ago · Apr 19, 2018, 10:50 PM
1CREATE TABLE IF NOT EXISTS `geoip_blocks` (
2 `uid` int(11) NOT NULL auto_increment,
3 `pid` int(11) NOT NULL,
4 `startipnum` int(12) unsigned NOT NULL,
5 `endipnum` int(12) unsigned NOT NULL,
6 `locid` int(11) NOT NULL,
7 PRIMARY KEY (`uid`),
8 KEY `startipnum` (`startipnum`),
9 KEY `endipnum` (`endipnum`)
10) TYPE=MyISAM AUTO_INCREMENT=3538967 ;
11
12SELECT uid FROM `geoip_blocks` WHERE 1406658569 BETWEEN geoip_blocks.startipnum AND geoip_blocks.endipnum LIMIT 1
13
14SELECT uid FROM `geoip_blocks` WHERE startipnum < 1406658569 and endipnum > 1406658569 limit 1
15
16numeric 1406658569
17ip address 83.215.232.9
18class A with 8 bit network part
19network part = 83
20
21SELECT uid
22FROM `geoip_blocks`
23WHERE networkpart = 83
24 AND 1406658569 BETWEEN startipnum AND endipnum
25
26SELECT uid FROM `geoip_blocks` WHERE startipnum < 1406658569 and endipnum > 1406658569 limit 1
27
28SELECT * FROM table WHERE id between X and Y
29
30SELECT max(endipnum - startipnum) FROM table