如何获取城市ip
注册埃文科技,可以免费下载县市级别的ip离线地址库( https://www.ipplus360.com/ ) 但免费级别只有一千多万地址库,并且精度不足。如有需要可以申请使用正式地址库
转换并导出
埃文地址库默认下载为txt格式,需要导入mysql中,进一步转换并且导出。
- 创建库表
CREATE TABLE
ipplus360
.IP_single_WGS84
(id
int(11) unsigned NOT NULL AUTO_INCREMENT,minip
int(11) unsigned DEFAULT NULL,maxip
int(11) unsigned DEFAULT NULL,continent
varchar(16) DEFAULT NULL,areacode
varchar(4) DEFAULT NULL,adcode
varchar(10) DEFAULT NULL,country
varchar(50) DEFAULT NULL,province
varchar(100) DEFAULT NULL,city
varchar(100) DEFAULT NULL,district
varchar(120) DEFAULT NULL,lngwgs
varchar(12) DEFAULT NULL,latwgs
varchar(12) DEFAULT NULL,radius
varchar(10) DEFAULT NULL,accuracy
varchar(10) DEFAULT NULL,owner
varchar(255) DEFAULT NULL,isp
varchar(255) DEFAULT NULL,asnumber
varchar(10) DEFAULT NULL,source
varchar(50) DEFAULT NULL,zipcode
varchar(20) DEFAULT NULL,timezone
varchar(10) DEFAULT NULL, PRIMARY KEY (id
) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; - 增加表索引
ALTER TABLE
ipplus360
.`IP_single_WGS84 ADD INDEX idx_minip_maxip(minip,maxip); - 数据导入表中
LOAD DATA LOCAL INFILE '/tmp/IP_trial_single_WGS84.txt' INTO TABLE ip_single_wgs84 CHARACTER SET utf8 FIELDS TERMINATED BY '\t' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;
- 转换字段并且导出(埃文科技中ip使用minip和maxip表示地址范围,需要转换成点分十进制)
select INET_NTOA(minip),INET_NTOA(maxip) from ip_single_wgs84 where province='湖北省' and city='武汉市' into outfile '/tmp/111.txt';