
# SQL IP地址函数
#### 功能函数
对于IPv4地址函数，地址参数可以是IPv4点分十进制字符串（例如"192.168.0.1"）或表示为整数的IP地址（例如3232235521）。subnet 参数应该是一个字符串，格式为CIDR表示法中的IPv4地址子网（例如"192.168.0.0/16"）。
#### IP函数语句
| **语句**                     | **说明**                                                                                              | **示例**                             |
|:---|:---|:---|
| IPV4_MATCH(address,subnet) | 如果subnet属于address的子网地址则返回true，否则返回false。如果 address不是有效的IPv4地址，则返回false。如果 address是整数而不是字符串，则此函数更效率。 | SELECT IPV4_MATCH (address,subnet) |
| IPV4_PARSE(address)        | 将address解析为整数的IPv4地址。如果address是有效的IPv4地址，则它可以被解析。如果address不是有效的IPv4地址，则返回null。                      | SELECT IPV4_PARSE(address)         |
| IPV4_STRINGIFY(address)    | 将整数address转换为以点分隔的IPv4地址字符串。如果address是有效的IPv4地址的整数，则它可以被解析。如果address不能表示为IPv4地址，则返回null。            | SELECT IPV4_STRINGIFY(address)     |
   
#### 示例及说明
**IPV4_MATCH(address, subnet)** **函数**
IPV4_MATCH函数，如果address属于subnet的子网ip，则返回true，否则返回false。如果address不是有效的IPv4地址，则返回false。如果address 是整数而不是字符串，则此函数具有更高的执行效率。
1. 字段样例 Ipv4: 192.168.1.18
   
2. 查询和分析语句
   ```
   select IPV4,IPV4_MATCH(Ipv4, '192.168.0.0/16')
   ```
   
3. 查询和分析结果
   表1查询和分析结果 
   | **IPV4**     | **EXPR$1** |
   |:---|:---|
   | 192.168.1.18 | true       |
      
   
**IPV4_PARSE(address)/ IPV4_STRINGIFY(address)** **函数**
将address解析为整数的IPv4地址。如果address是有效的IPv4地址，则它可以被解析。如果address不是有效的IPv4地址，则返回null。
1. 字段样例 Ipv4: 192.168.0.1
   Num: 3232235521
   
2. 查询和分析语句
   ```
   select  IPV4_PARSE(Ipv4), IPV4_STRINGIFY(Num)
   ```
   
3. 查询和分析结果
   表2查询和分析结果 
   | **EXPR$0**  | **EXPR$1**  |
   |:---|:---|
   | -1062731775 | 192.168.0.1 |
      
   
 
