在做不同地域会员评论数据可视化图表的时候,一直在研究怎么将MySQL中获取的ip地址转化成物理地址。今天百度搜索好久终于找到了一个解决方案:利用纯真IP数据库导入MySQL,然后利用SQL语句查询。
纯真数据库包含了大量的IP地址转换数据,而且也在维护更新,不过这个数据库是一个dat文件,需要使用特定的程序才能打开,如果将数据导入到MySQL中那就可以通过SQL语句进行查询IP对应的物理地址。
那么如何将dat格式的纯真IP数据库导入到MySQL中呢?网上有一个工具 IPLook,可以将dat数据库文件转换为txt文本文件,然后利用Navicat将txt文件传入数据库中就可以了。
纯真IP数据库dat文件下载地址:
隐藏内容
评论可见
前往评论
dat转txt工具IPLook下载地址:
转换后的格式是这样的:
0.0.0.0 0.255.255.255 IANA保留地址 CZ88.NET 1.0.0.0 1.0.0.255 澳大利亚 CZ88.NET 1.0.1.0 1.0.3.255 福建省 电信 1.0.4.0 1.0.7.255 澳大利亚 CZ88.NET 1.0.8.0 1.0.15.255 广东省 电信 1.0.16.0 1.0.31.255 日本 CZ88.NET 1.0.32.0 1.0.63.255 广东省 电信 1.0.64.0 1.0.127.255 日本 CZ88.NET 1.0.128.0 1.0.255.255 泰国 CZ88.NET 1.1.0.0 1.1.0.255 福建省 电信 1.1.1.0 1.1.1.255 澳大利亚 CZ88.NET
转换后使用 Navicat for MySQL 工具将其导入到 MySQL 中:
1、新建数据库名称随意,然后双击打开这个数据,在空白区域点击右键选择导入向导
2、选择 TXT 文档,点击下一步
3、选择要导入的 TXT 文件
4、后面的步骤直接保持默认的,最后点击开始,导入成功后的数据库如下:
这时候我们就可以使用 SQL 语句查询某个 IP 的物理地址:
Select * from ip where INET_ATON('119.253.32.42') between INET_ATON(startIp) and INET_ATON(endIp);
INET_ATON 是将一个字符串IP地址转换为一个32位的网络序列IP地址,这样方便我们做比较。
发表评论