- 下載GeoLite Country
- 建立Table
CREATE TABLE `geo_country` (
`start_ip` char(15) NOT NULL COMMENT '起始IP',
`end_ip` char(15) NOT NULL COMMENT '結束IP',
`start` bigint(20) NOT NULL COMMENT '起始值',
`end` bigint(20) NOT NULL COMMENT '結束值',
`country` char(2) NOT NULL COMMENT '國家簡碼',
`name` char(50) NOT NULL COMMENT '國家名稱'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='國家ip'
- 將檔名命名成和Table一樣可以在import時自動幫你對應到Table,這邊是geo_country
- Import CSV到Mysql
mysqlimport
--fields-terminated-by=","
--fields-optionally-enclosed-by="\""
--lines-terminated-by="\n"
--host=<YOUR_HOST>
--user=<YOUR_USER>
--password=<YOUR_PASSWORD>
<YOUR_DATABASE>
-L /PATH/geo_country.csv
- 測試168.95.1.1 計算方式 (168 x 16777216) + (95 x 65536) + (1 x 256) + (1 x 1)
SELECT * FROM `geo_country` WHERE 2824798465 BETWEEN `start` AND `end`;
若要安裝在Debian上可參考:http://www.php.net/manual/en/geoip.setup.php#93000
輕鬆省事的啦。
另外如果你要求要更精確、夠有錢,也可以不用GeoLite,改用GeoIP。
輕鬆省事的啦。
另外如果你要求要更精確、夠有錢,也可以不用GeoLite,改用GeoIP。
沒有留言:
張貼留言