在 PostgreSQL 中使用码农很忙 IP 地址数据库
在下载到码农很忙 IP 地址数据库后,我们可以将其存储在 PostgreSQL 数据库中,并在需要查询某个 IP 对应的位置数据时,通过 SQL 语句获取正确的结果。这是一种很便捷的使用方式,并且在增加了恰当的索引后,可以取得不错的搜索效果。
PostgreSQL 数据库内置了 inet
和 range
两个数据类型,用来表示一个网络地址和数值范围。为了达到更高的查询速度,我们可以自定义一个名为 inet_rang
的数据类型,用于表示一个网络地址的范围:
CREATE TYPE inet_range AS RANGE (subtype=inet);
之后,需要在 PostgreSQL 中新建数据表:t_ip_data
,并为 ip_rang
搜索列增加 GiST 索引:
DROP TABLE IF EXISTS "public"."t_ip_data";
CREATE TABLE "public"."t_ip_data" ("id" serial4,"ip_begin" inet NOT NULL,"ip_end" inet NOT NULL,"ip_range" "public"."inet_range","cc" varchar(255) COLLATE "pg_catalog"."default","continent" varchar(255) COLLATE "pg_catalog"."default","flag" varchar(255) COLLATE "pg_catalog"."default","country" varchar(255) COLLATE "pg_catalog"."default","province" varchar(255) COLLATE "pg_catalog"."default","city" varchar(255) COLLATE "pg_catalog"."default","tag" varchar(255) COLLATE "pg_catalog"."default","isp" varchar(255) COLLATE "pg_catalog"."default");
CREATE INDEX "t_ip_data_IPRange_idx" ON "public"."t_ip_data" USING gist ("ip_range" "pg_catalog"."range_ops");
ALTER TABLE "public"."t_ip_data" ADD CONSTRAINT "t_ip_data_pkey" PRIMARY KEY ("id");
之后,使用 Navicat 等工具,将码农很忙 IP 地址数据库中的数据导入到数据表 t_ip_data 中,注意字段对应:
如果不是第一次导入数据,注意将【导入模式】设置为【复制】:
数据导入成功后,需要使用以下 SQL 语句对 ip_range 进行修正:
UPDATE t_ip_data SET ip_range = ('[' ||ip_begin || ',' || ip_end || ']') :: inet_range
之后,就可以使用以下 SQL 语句进行数据查询:
SELECT * FROM t_ip_data WHERE ip_range @> '要查询的 IPv4 地址' :: inet
示例查询如下:
在 PostgreSQL 中使用码农很忙 IP 地址数据库相关推荐
- 在 MySQL 中使用码农很忙 IP 地址数据库
在下载到码农很忙 IP 地址数据库后,我们可以将其存储在 MySQL 数据库中,并在需要查询某个 IP 对应的位置数据时,通过 SQL 语句获取正确的结果.这是一种很便捷的使用方式,并且在增加了恰当的 ...
- 如何在庞大的ip地址库中快速定位到对应的ip地址所对应的归属地?
通过ip地址查看 ip地址的归属地,这个功能实现起来并不复杂,它是通过维护一个很大的ip地址库来实现的,比如查找 202..133.3 该ip地址库,那便会在对应的ip地址库中找到 一个区间 如 [2 ...
- 【Java网络编程】获得实验室局域网中所有开机主机名称和IP地址,InetAddress类,在java中如何获取IP地址的方法
获得实验室所有主机的IP地址和主机名 一.InetAddress类 二.获得指定IP地址和主机名的主要方法以及练习 1.主要方法 2.源码 三.获得实验室局域网中所有开机主机名称和IP地址 1.源码 ...
- VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装
VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装 在阿里云开源镜像地址下载镜像 Index of /centos/7.2.1511/isos/x86_64/ http://mi ...
- 5 获取当前访问的控制名称_LabVIEW编程技巧:网络通信中如何获取计算机名称、IP地址等信息...
问题引出 在网络通讯编程中,经常需要获取当前主机的名称.IP地址等信息,在LabVIEW中如何获取这些信息呢? 下面以本机为例进行说明,先看一下本机的信息.在Windows系统中打开控制台程序,输入& ...
- python判断字符串合法,详解Python判定IP地址合法性的三种方法 python中判断一个字符串是否是IP地址...
html 中 鼠标放在标签上会显示小手状,其它标签在其他标签上,美工给加了一些样式,鼠标放上去也显示小手状.有哪位大手状样式 有什么不懂的前端问题可以去菜鸟驿站.全都是泡沫,只一刹的花火,所谓的友情, ...
- 解决VMware中centos 7虚拟机,主ip地址:网络信息不可用。
解决VMware中centos 7虚拟机,主ip地址:网络信息不可用. 看了很多方法都不适用然后琢磨出来了一个奇奇怪怪的方法(咱也不知道算不算解决了,但是这个方法能ping通外网 查看防火墙是否关闭 ...
- 查看oracle数据库中某个dblink对应的数据库连接ip地址
查询oracle数据库中某个dblink对应的连接数据库ip地址,其实只需要查到对应的创建语句就好了. oracle数据库查询对应dblink的连接数据库ip地址时,首先在oracle数据库中使用 s ...
- python中利用re模块正则表达式匹配ip地址
python中利用正则表达式判断ipv4地址是否合法 ip地址的范围为0.0.0.0-255.255.255.255,分成四段,则每段的范围都是0-255,因此,以一段进行分析: 在进行书写匹配规则时 ...
最新文章
- 人工智能未来读后感 ----by RayKurzweil
- Java笔记-重写JsonSerializer中serialize方法使Json中时间戳/1000
- 创建图书管理_阿拉尔市文化(图书)馆举办总分馆制建设图书管理软件、文化云专题培训班...
- shell与shell脚本
- shopnum1商城系统
- 请教大家一个问题,有关于数据库的设计
- 博途V16软件官方下载和安装
- 能查阅国外文献的8个论文网站(最新整理)
- oracle11g怎么打开oem,oracle11g启动OEM
- ISIS协议的基础配置实验,原来做ISIS基础配置还可以这么有趣
- Android 3D 旋转
- Python智能语音机器人
- 传感器与检测技术基础知识(4)—— 电阻式传感器
- php model module,Yii2用Gii自动生成Module+Model+CRUD
- OPCode详解及汇编与反汇编原理
- SpringBoot通过WorkBook快速实现对Excel的导入和导出(包括数据校验)
- 非阻塞recvfrom卡住
- Python爬虫 | 获取股票行业资金流向
- python证书微软认证_怎样考取微软工程师?
- 胡润研究院第二年发布中国豪华车品牌特性研究白皮书
热门文章
- ASP.Net 验证正则表达式
- centos安装与配置R语言
- mysql配置-django
- 2007武汉.NET俱乐部沙龙-VS2008、WPF、Silverlight
- DropDownList 選項改變確認腳本
- 文件目录管理与显示c语言,Centos 7 文件和目录管理
- ipad和iphone切图_如何在iPhone和iPad上密码保护照片
- linux 基准测试_如何对Linux系统进行基准测试:3个开源基准测试工具
- windows安装程序创建_如何在Windows上创建已安装程序的列表
- 求连续序列的最大子序列和