`
wj98127
  • 浏览: 268040 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

IP处理函数inet_aton()和inet_ntoa()

阅读更多
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处理函数inet_aton()和inet_ntoa()使用说明

    在编程和数据库操作中,有时需要将IP地址转换为整数或者从整数还原回IP地址,这时就用到了`inet_aton()`和`inet_ntoa()`这两个函数。 `inet_aton()`函数是用于将一个点分十进制的IP地址字符串转换为32位无符号整数...

    基于Mysql的IP处理函数inet_aton()与inet_ntoa()的深入分析

    总的来说,`inet_aton()`和`inet_ntoa()`是MySQL处理IP地址的实用工具,它们能够帮助我们在数据库操作中高效地存储和处理IP数据。在使用过程中,确保选用合适的列类型来存储转换后的整数值,以避免数据溢出或丢失。...

    利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享

    总之,使用`inet_aton()`和`inet_ntoa()`函数存储和处理IP地址,不仅可以节省存储空间,还可以提高查询效率,尤其适合处理大量IP数据的场景。这种做法在数据库设计中是一种优化策略,能够有效提升系统的性能和资源...

    mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例

    为了高效地操作IP地址,MySQL提供了一对函数:`INET_ATON` 和 `INET_NTOA`。这两个函数可以帮助我们将IP地址转换成整型数值,从而方便存储和计算。 1. **保存IP地址到数据库** 在设计数据库表结构时,通常我们会为...

    inet各种函数.docx

    `inet_aton`函数是早期用来将点分十进制IP地址转换为32位网络字节序IP地址的函数,它的函数原型如下: ```c int inet_aton(const char *string, struct in_addr*addr); ``` - `string`参数为点分十进制IP地址字符...

    字符串IP和二进制IP地址之间的转换

    本篇文章主要讨论如何在字符串IP地址和二进制IP地址之间进行转换,重点介绍`inet_aton()`和`inet_ntoa()`这两个关键函数。 `inet_aton()`函数用于将点分十进制的字符串IP地址转换为二进制的`in_addr`结构体。这个...

    网络编程学习一:IP地址转换函数.docx

    本文将深入探讨C语言中用于IP地址转换的几个关键函数:inet_aton、inet_ntoa、inet_addr以及IPv6兼容的inet_pton和inet_ntop。 首先,我们关注的是仅支持IPv4的函数:inet_aton、inet_ntoa和inet_addr。这些函数...

    PHP实现IP–数字互相转换

    在实际工作中,可能会遇到更复杂的情况,比如处理IPv6地址,这时可能需要使用`inet_pton()`和`inet_ntop()`函数,或者使用`filter_var()`函数配合`FILTER_VALIDATE_IP`选项来验证和转换IP地址。总的来说,理解并运用...

    C语言中网络地址与二进制数之间转换的函数小结

    C语言inet_ntoa()函数:将网络二进制的数字转换成网络地址 头文件: #include <sys> #include <netinet> #include 定义函数: char * inet_ntoa(struct in_addr in); 函数说明:inet_ntoa()用来将参数in 所指...

    IPConvertUtil.java

    根据ip和掩码计算ip地址段的开始和结束ip; 根据ip计算ip int值,类似于mysql函数 inet_aton和inet_ntoa

    linux网络编程常用函数[参照].pdf

    这两个函数支持IPv4和IPv6,并且比`inet_aton()`和`inet_ntoa()`更安全,不会导致内存问题。 4. **读写函数**: - `readn()` 和 `writen()` 是自定义的I/O函数,确保完全读取或写入指定数量的字节,它们会处理中断...

    解决mysql进行ip字符串比较问题

    解决IP字符串比较问题的一种方法是使用MySQL的内置函数`INET_ATON()`和`INET_NTOA()`。`INET_ATON()`函数可以将IP地址字符串转换为整型数值,便于数值比较。例如,"192.168.1.1"会被转换为3232235777。之后,你可以...

    用Python将IP地址在整型和字符串之间轻松转换

    MySQL中存在INET_ATON() 、INET_NTOA()函数进行IP整型和字符串之间的转换,那么Python中存在什么方法可以实现MySQL中INET_ATON() 、INET_NTOA()的功能呢?方法肯定是有的~ 方法如下 # 导入相关模块包 import ...

    Mysql函数手册.rar_MySQL函数手册_VZI_mysql 函数手册

    4. 转换函数:如CAST()和CONVERT()用于在不同数据类型间转换,以及INET_ATON()和INET_NTOA()用于IP地址的转换。 5. 控制流程函数:如IF()、CASE WHEN...END用于条件判断,以及NULLIF()用于比较两个表达式,如果相等...

    c++编写的ip地址转换

    - 使用`inet_aton()`函数可以将点分十进制的IP地址转换为二进制。例如: ```cpp struct in_addr ip_binary; if (inet_aton("192.168.1.1", &ip_binary) == 0) { // 错误处理 } ``` - 如果你需要处理IPv6地址...

    linux网络编程常用函数.pdf

    - `inet_pton` 和 `inet_ntop` 提供了更安全的IP地址转换方式,支持IPv4和IPv6,返回值指示成功或失败,并且可以处理错误情况。它们需要指定地址族(如AF_INET或AF_INET6)和目标缓冲区大小。 4. **readn、writen ...

Global site tag (gtag.js) - Google Analytics