GBase8c之网络地址类型
GBase8c数据库支持专门用于存储网络地址的数据类型,主要包括cidr、inet和macaddr,用于处理IPv4、IPv6地址及MAC地址。
数据类型定义与用法:
cidr类型:存储无类别域间路由(CIDR)格式的网络地址,格式为address/y,其中address可以是IPv4或IPv6地址,y表示子网掩码的二进制位数。例如,192.168.1.0/24表示一个IPv4网络。如果省略掩码部分,系统会根据地址类别自动计算。
inet类型:存储主机或网络地址,支持IPv4和IPv6,格式为address[/mask]。它比cidr更灵活,可表示单个主机地址(如192.168.1.5/32)或网络范围。
macaddr类型:专门用于存储MAC地址,支持标准格式如08:00:2b:01:02:03或08-00-2b-01-02-03。输入时大小写不敏感,但输出统一为08-00-2b-01-02-03格式。
输入输出规范与转换: 输入时,IPv4和IPv6地址需符合标准格式,MAC地址支持多种变体(如使用冒号或连字符分隔)。系统自动进行输入错误检查,无效格式会报错。类型转换方面,cidr值可隐式转换为inet,而inet转换为cidr时会将掩码右侧位清零以生成有效网络地址;显式转换可通过:ml-search-more[CAST]{text="CAST"}或类型语法实现,如inet('192.168.1.5')或'192.168.1.5'::cidr。
常用函数与操作符: GBase8c提供丰富的网络地址函数,例如:
abbrev(inet):缩写显示格式,如abbrev('10.1.0.0/16')返回10.1/16。
broadcast(inet):返回网络广播地址,如broadcast('192.168.1.5/24')输出192.168.1.255/24。
family(inet):提取地址族,IPv4返回4,IPv6返回6。
host(inet):抽取主机地址部分,如host('192.168.1.5/24')返回192.168.1.5。
set_masklen(cidr, int):设置子网掩码长度,如set_masklen('192.168.1.0/24', 16)输出192.168.0.0/16。
这些函数支持对网络地址的高效操作,如掩码计算和格式转换。
评论
热门帖子
- 12025-12-01浏览数:182765
- 22023-05-09浏览数:25067
- 42023-09-25浏览数:18527
- 52020-05-11浏览数:17529