MYSql的IP对int的转换函数
select inet_aton(ip) from table_name;
网络地址:
192.168.33.123
每一个值最大不会越过255,也就是十六进制的FF,两个Byte刚好表示的最大值是255,
这样子,就可以用一个32位的整形来保存这个地址
192 168 33 123
1100 0000 1010 1000 0010 0001 0111 1011
把这些二进制合在一起就是32位的数了
11000000101010000010000101111011
十进制为
3232244091
* INET_ATON(expr)
给出一个作为字符串的网络地址的"点地址"(如127.0.0.1)表示,返回一个代表该地址数值的整数。地址可以是4或8比特地址。
mysql> SELECT INET_ATON('209.207.224.40');
-> 3520061480
产生的数字总是按照网络字节顺序。如上面的例子,数字按照 209×2563 + 207×2562 + 224×256 + 40 进行计算。
INET_ATON() 也能理解短格式 IP 地址:
mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1');
-> 2130706433, 2130706433
注释: 在存储由INET_ATON() 产生的值时,推荐你使用 INT UNSIGNED 列。假如你使用 (带符号) INT列, 则相应的第一个八位组大于127的IP 地址值会被截至 2147483647 (即, INET_ATON('127.255.255.255') 所返回的值)。请参见11.2节,“数值类型”。
* INET_NTOA(expr)
给定一个数字网络地址 (4 或 8 比特),返回作为字符串的该地址的电地址表示。
*
mysql> SELECT INET_NTOA(3520061480);
-> '209.207.224.40'
分享到:
相关推荐
在编程和数据库操作中,有时需要将IP地址转换为整数或者从整数还原回IP地址,这时就用到了`inet_aton()`和`inet_ntoa()`这两个函数。 `inet_aton()`函数是用于将一个点分十进制的IP地址字符串转换为32位无符号整数...
总的来说,`inet_aton()`和`inet_ntoa()`是MySQL处理IP地址的实用工具,它们能够帮助我们在数据库操作中高效地存储和处理IP数据。在使用过程中,确保选用合适的列类型来存储转换后的整数值,以避免数据溢出或丢失。...
总之,使用`inet_aton()`和`inet_ntoa()`函数存储和处理IP地址,不仅可以节省存储空间,还可以提高查询效率,尤其适合处理大量IP数据的场景。这种做法在数据库设计中是一种优化策略,能够有效提升系统的性能和资源...
为了高效地操作IP地址,MySQL提供了一对函数:`INET_ATON` 和 `INET_NTOA`。这两个函数可以帮助我们将IP地址转换成整型数值,从而方便存储和计算。 1. **保存IP地址到数据库** 在设计数据库表结构时,通常我们会为...
`inet_aton`函数是早期用来将点分十进制IP地址转换为32位网络字节序IP地址的函数,它的函数原型如下: ```c int inet_aton(const char *string, struct in_addr*addr); ``` - `string`参数为点分十进制IP地址字符...
本篇文章主要讨论如何在字符串IP地址和二进制IP地址之间进行转换,重点介绍`inet_aton()`和`inet_ntoa()`这两个关键函数。 `inet_aton()`函数用于将点分十进制的字符串IP地址转换为二进制的`in_addr`结构体。这个...
本文将深入探讨C语言中用于IP地址转换的几个关键函数:inet_aton、inet_ntoa、inet_addr以及IPv6兼容的inet_pton和inet_ntop。 首先,我们关注的是仅支持IPv4的函数:inet_aton、inet_ntoa和inet_addr。这些函数...
在实际工作中,可能会遇到更复杂的情况,比如处理IPv6地址,这时可能需要使用`inet_pton()`和`inet_ntop()`函数,或者使用`filter_var()`函数配合`FILTER_VALIDATE_IP`选项来验证和转换IP地址。总的来说,理解并运用...
C语言inet_ntoa()函数:将网络二进制的数字转换成网络地址 头文件: #include <sys> #include <netinet> #include 定义函数: char * inet_ntoa(struct in_addr in); 函数说明:inet_ntoa()用来将参数in 所指...
根据ip和掩码计算ip地址段的开始和结束ip; 根据ip计算ip int值,类似于mysql函数 inet_aton和inet_ntoa
这两个函数支持IPv4和IPv6,并且比`inet_aton()`和`inet_ntoa()`更安全,不会导致内存问题。 4. **读写函数**: - `readn()` 和 `writen()` 是自定义的I/O函数,确保完全读取或写入指定数量的字节,它们会处理中断...
解决IP字符串比较问题的一种方法是使用MySQL的内置函数`INET_ATON()`和`INET_NTOA()`。`INET_ATON()`函数可以将IP地址字符串转换为整型数值,便于数值比较。例如,"192.168.1.1"会被转换为3232235777。之后,你可以...
MySQL中存在INET_ATON() 、INET_NTOA()函数进行IP整型和字符串之间的转换,那么Python中存在什么方法可以实现MySQL中INET_ATON() 、INET_NTOA()的功能呢?方法肯定是有的~ 方法如下 # 导入相关模块包 import ...
4. 转换函数:如CAST()和CONVERT()用于在不同数据类型间转换,以及INET_ATON()和INET_NTOA()用于IP地址的转换。 5. 控制流程函数:如IF()、CASE WHEN...END用于条件判断,以及NULLIF()用于比较两个表达式,如果相等...
- 使用`inet_aton()`函数可以将点分十进制的IP地址转换为二进制。例如: ```cpp struct in_addr ip_binary; if (inet_aton("192.168.1.1", &ip_binary) == 0) { // 错误处理 } ``` - 如果你需要处理IPv6地址...
- `inet_pton` 和 `inet_ntop` 提供了更安全的IP地址转换方式,支持IPv4和IPv6,返回值指示成功或失败,并且可以处理错误情况。它们需要指定地址族(如AF_INET或AF_INET6)和目标缓冲区大小。 4. **readn、writen ...