ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

PostgreSQL-Network Address类型操作和函数

2022-09-10 20:33:51  阅读:298  来源: 互联网

标签:24 PostgreSQL Network 192.168 地址 inet Address 掩码 select


一、操作

inet << inet → boolean
子网是否严格包含在子网中?此运算符和接下来的四个运算符测试子网包含。他们只考虑两个地址的网络部分(忽略网络掩码右侧的任何位)并确定一个网络是否与另一个网络相同或属于另一个网络。

例子:

select inet '192.168.1.5' << inet '192.168.1/24';
select inet '192.168.0.5' << inet '192.168.1/24';
select inet '192.168.1/24' << inet '192.168.1/24';

inet <<= inet → boolean
子网是否包含或等于子网?

select inet '192.168.1/24' <<= inet '192.168.1/24';

inet >> inet → boolean
子网是否严格包含子网?

select inet '192.168.1/24' >> inet '192.168.1.5';

inet >>= inet → boolean
子网是否包含或等于子网?

select inet '192.168.1/24' >>= inet '192.168.1/24';
select inet '192.168.1/24' >> inet '192.168.1/24';

inet && inet → boolean
任一子网是否包含或等于另一个子网?

select inet '192.168.1/24' && inet '192.168.1.80/28';
SELECT inet '192.168.1/24' && inet '192.168.2.0/28';

inet → inet
按位计算 NOT。

select ~ inet '192.168.1.6';

inet & inet → inet
计算按位与。

select inet '192.168.1.6' & inet '0.0.0.255';

inet | inet → inet
计算按位或。

select inet '192.168.1.6' | inet '0.0.0.255';

inet + bigint → inet
向地址添加偏移量。

select inet '192.168.1.6' + 25;

bigint + inet → inet
向地址添加偏移量。

select 200 + inet '::ffff:fff0:1';

inet - bigint → inet
从地址中减去偏移量。

SELECT inet '192.168.1.43' - 36;

inet - inet → bigint
计算两个地址的差。

SELECT inet '192.168.1.43' - inet '192.168.1.19';
select inet '::1' - inet '::ffff:1';

二、函数

broadcast ( inet ) → inet
计算地址网络的广播地址。

select broadcast(inet '192.168.1.5/24') ;

family ( inet ) → integer
返回地址的系列:4 表示 IPv4,6 表示 IPv6。

select family(inet '::1');

host ( inet ) → text
以文本形式返回 IP 地址,忽略网络掩码。

select host(inet '192.168.1.0/24');

hostmask ( inet ) → inet
计算地址网络的主机掩码。

select hostmask(inet '192.168.23.20/30');

inet_merge ( inet, inet ) → cidr
计算包含两个给定网络的最小网络。

select inet_merge(inet '192.168.1.5/24', inet '192.168.2.5/24') ;

inet_same_family ( inet, inet ) → boolean
测试地址是否属于同一个 IP 系列。

select inet_same_family(inet '192.168.1.5/24', inet '::1');

masklen ( inet ) → integer
返回网络掩码长度(以位为单位)。

select masklen(inet '192.168.1.5/24');

netmask ( inet ) → inet
计算地址网络的网络掩码。

select netmask(inet '192.168.1.5/24');

network ( inet ) → cidr
返回地址的网络部分,将网络掩码右侧的内容归零。(这相当于将值转换为 cidr。)

select network(inet '192.168.1.5/24');

set_masklen ( inet, integer ) → inet
设置 inet 值的网络掩码长度。地址部分不变。

select set_masklen(inet '192.168.1.5/24', 16);

set_masklen ( cidr, integer ) → cidr
设置 cidr 值的网络掩码长度。新网络掩码右侧的地址位设置为零。

select set_masklen(cidr '192.168.1.0/24', 16);

text ( inet ) → text
以文本形式返回未缩写的 IP 地址和网络掩码长度。(这与显式转换为文本具有相同的结果。)

select text(inet '192.168.1.5');

abbrev ( inet ) → text
创建一个作为文本的缩写显示格式。(结果与 inet 输出函数产生的结果相同;它只是与显式转换为文本的结果相比“缩写”,由于历史原因,它永远不会显示网络掩码部分。)

select abbrev(inet '10.1.0.0/32');

abbrev ( cidr ) → text
创建一个作为文本的缩写显示格式。

select abbrev(cidr '10.1.0.0/16');

trunc ( macaddr ) → macaddr
将地址的最后 3 个字节设置为零。剩余的前缀可以与特定的制造商相关联(使用 PostgreSQL 中未包含的数据)。

select trunc(macaddr '12:34:56:78:90:ab');

trunc ( macaddr8 ) → macaddr8
将地址的最后 5 个字节设置为零。剩余的前缀可以与特定的制造商相关联(使用 PostgreSQL 中未包含的数据)。

select trunc(macaddr8 '12:34:56:78:90:ab:cd:ef') ;

macaddr8_set7bit ( macaddr8 ) → macaddr8
将地址的第 7 位设置为 1,创建所谓的修改后的 EUI-64,以包含在 IPv6 地址中。

select macaddr8_set7bit(macaddr8 '00:34:56:ab:cd:ef');

标签:24,PostgreSQL,Network,192.168,地址,inet,Address,掩码,select
来源: https://www.cnblogs.com/shigongp/p/16676262.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有