9.11. 網絡地址類型函數和操作符

Table 9-31 顯示了可以用於 cidrinet 的操作符。 操作符 <<<<= >>,和 >>= 用於計算子網包含:它們只考慮兩個地址的網絡部分,忽略任何主機部分, 然後判斷其中一個網絡部分是等於另外一個還是另外一個的子網。

Table 9-31. cidrinet 操作符

操作符描述例子
< 小於嗎inet '192.168.1.5' < inet '192.168.1.6'
<= 小於或等於inet '192.168.1.5' <= inet '192.168.1.5'
= 等於inet '192.168.1.5' = inet '192.168.1.5'
>= 大於或等於inet '192.168.1.5' >= inet '192.168.1.5'
> 大於inet '192.168.1.5' > inet '192.168.1.4'
<> 不等於inet '192.168.1.5' <> inet '192.168.1.4'
<< 包含於inet '192.168.1.5' << inet '192.168.1/24'
<<= 包含於或等於inet '192.168.1/24' <<= inet '192.168.1/24'
>> 包含inet '192.168.1/24' >> inet '192.168.1.5'
>>= 包含或等於inet '192.168.1/24' >>= inet '192.168.1/24'

Table 9-32 顯示了所有可以用於 cidrinet 的函數。 函數 hosttextabbrev 主要是為了提供可選的顯示格式用的。 您可以用普通的類型轉換語法︰ inet(expression) 或者 colname::inet 把一個文本數域轉換成inet

Table 9-32. cidrinet 函數

函數返回類型描述例子結果
broadcast(inet)inet網絡廣播地址broadcast('192.168.1.5/24')192.168.1.255/24
host(inet)text將主機地址類型抽出為文本host('192.168.1.5/24')192.168.1.5
masklen(inet)integer抽取網絡掩碼長度masklen('192.168.1.5/24')24
set_masklen(inet,integer)inetinet數值設置網絡掩碼長度set_masklen('192.168.1.5/24',16)192.168.1.5/16
netmask(inet)inet為網絡構造網絡掩碼netmask('192.168.1.5/24')255.255.255.0
hostmask(inet)inet為網絡構造主機掩碼hostmask('192.168.23.20/30')0.0.0.3
network(inet)cidr抽取地址的網絡部分network('192.168.1.5/24')192.168.1.0/24
text(inet)text把 IP 地址和掩碼長度抽取為文本text(inet '192.168.1.5')192.168.1.5/32
abbrev(inet)text抽取縮寫顯示為文本abbrev(cidr '10.1.0.0/16')10.1/16
family(inet)integer抽取地址族 4 for IPv4, 6 for IPv6family('::1')6

Table 9-33 顯示了可以用於 macaddr 類型的函數。 函數 trunc(macaddr) 返回一個 MAC 地址,該地址的最後三個字元設置為零。 這樣可以把剩下的前綴與一個製造商相關聯。 源程序目錄 contrib/mac 裡有一些用於建立和維護這樣的 關聯資料表的工具。

Table 9-33. macaddr 函數

函數返回類型描述例子結果
trunc(macaddr)macaddr把後三個字元置為零trunc(macaddr '12:34:56:78:90:ab')12:34:56:00:00:00

macaddr 類型還支援標準關係操作符 (><=,等) 用於詞法排序。