?
? ????? PHP ??? ???? ??? ?? ??
Table 9-33顯示了可以用于cidr和inet的操作符。操作符<<, <<=,>>,>>= 用于測(cè)試子網(wǎng)包含:它們只考慮兩個(gè)地址的網(wǎng)絡(luò)部分,忽略任何主機(jī)部分, 然后判斷其中一個(gè)網(wǎng)絡(luò)部分是等于另外一個(gè)還是另外一個(gè)的子網(wǎng)。
Table 9-33. cidr和inet操作符
操作符 | 描述 | 示例 |
---|---|---|
< | 小于 | 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' |
~ | 位非 | ~ inet '192.168.1.6' |
& | 位與 | inet '192.168.1.6' & inet '0.0.0.255' |
| | 位或 | inet '192.168.1.6' | inet '0.0.0.255' |
+ | 加 | inet '192.168.1.6' + 25 |
- | 減 | inet '192.168.1.43' - 36 |
- | 減 | inet '192.168.1.43' - inet '192.168.1.19' |
Table 9-34顯示了所有可以用于cidr和inet的函數(shù)。
函數(shù)abbrev
,host
,text
主要是為了提供可選的顯示格式用的
Table 9-34. cidr和inet函數(shù)
函數(shù) | 返回類(lèi)型 | 描述 | 示例 | 結(jié)果 |
---|---|---|---|---|
abbrev(inet) |
text | 縮寫(xiě)顯示格式文本 | abbrev(inet '10.1.0.0/16') | 10.1.0.0/16 |
abbrev(cidr) |
text | 縮寫(xiě)顯示格式文本 | abbrev(cidr '10.1.0.0/16') | 10.1/16 |
broadcast(inet) |
inet | 網(wǎng)絡(luò)廣播地址 | broadcast('192.168.1.5/24') | 192.168.1.255/24 |
family(inet) |
int | 抽取地址族(4為IPv4,6為IPv6) | family('::1') | 6 |
host(inet) |
text | 抽取主機(jī)IP地址為文本 | host('192.168.1.5/24') | 192.168.1.5 |
hostmask(inet) |
inet | 為主機(jī)構(gòu)造網(wǎng)絡(luò)掩碼 | hostmask('192.168.23.20/30') | 0.0.0.3 |
masklen(inet) |
int | 抽取子網(wǎng)掩碼長(zhǎng)度 | masklen('192.168.1.5/24') | 24 |
netmask(inet) |
inet | 為網(wǎng)絡(luò)構(gòu)造子網(wǎng)掩碼 | netmask('192.168.1.5/24') | 255.255.255.0 |
network(inet) |
cidr | 抽取地址的網(wǎng)絡(luò)部分 | network('192.168.1.5/24') | 192.168.1.0/24 |
set_masklen(inet,int) |
inet | 給inet數(shù)值設(shè)置子網(wǎng)掩碼長(zhǎng)度 | set_masklen('192.168.1.5/24', 16) | 192.168.1.5/16 |
set_masklen(cidr,int) |
cidr | 給cidr數(shù)值設(shè)置子網(wǎng)掩碼長(zhǎng)度 | set_masklen('192.168.1.0/24'::cidr, 16) | 192.168.0.0/16 |
text(inet) |
text | 抽取IP 地址和掩碼長(zhǎng)度為文本 | text(inet '192.168.1.5') | 192.168.1.5/32 |
任何cidr值都能夠被隱含或明確的轉(zhuǎn)換為inet值, 因此上述能夠操作inet值的函數(shù)也同樣能夠操作cidr值。而將 某些操作inet和cidr的函數(shù)單獨(dú)分隔開(kāi)是因?yàn)樗鼈兊男袨椴煌?inet值也可以轉(zhuǎn)換為cidr值,此時(shí)子網(wǎng)掩碼右側(cè)的所有位都將無(wú)聲的 轉(zhuǎn)換為零以獲得一個(gè)有效的cidr值。另外,你還可以使用常規(guī)的類(lèi)型轉(zhuǎn)換語(yǔ)法 將一個(gè)文本字符串轉(zhuǎn)換為inet或cidr值。 例如:inet(expression)或 colname::cidr.。
Table 9-35顯示了可以用于macaddr類(lèi)型的函數(shù)。
函數(shù)trunc(macaddr)
返回一個(gè) MAC 地址,
該地址的最后三個(gè)字節(jié)設(shè)置為零。這樣可以把剩下的前綴與一個(gè)制造商相關(guān)聯(lián)。
Table 9-35. macaddr函數(shù)
函數(shù) | 返回類(lèi)型 | 描述 | 示例 | 結(jié)果 |
---|---|---|---|---|
trunc(macaddr) |
macaddr | 把后三個(gè)字節(jié)置為零 | trunc(macaddr '12:34:56:78:90:ab') | 12:34:56:00:00:00 |
類(lèi)型還支持標(biāo)準(zhǔn)關(guān)系操作符(>,<=等)用于詞法排序。