学习
实践
活动
工具
TVP
写文章

INET_ATON()函数在MySQL5.6版本和5.7版本的差异

,INET_ATON(?)                    可以看出在5.6上不管用于select,insert inet_aton函数,当参数为空字符串时,都能返回null,并正确处理。 而在5.7版本上,当在执行select时inet_aton能返回null,但是在insert语句中报了错,和我程序报的错一样。 至此可以看出程序中报的错就是因为MySQL5.6、5.7对inet_aton函数行为差异导致的。也就是5.7对inet_aton函数的参数有了更强的校验。      其实select中也报了同样的异常,只是把异常当作warning了,当执行完select inet_aton('');后可以看到下面有1 warning的字样。

85490

由 Python2 和 Python3 中 socket.inet_aton() 实现不同引发的血案

这几天在做一个功能实现的时候,需要把别人用 Python2.6 写好的脚步转成 Python3.4 实现,大部分地方转化都没啥问题,但是在 socket.inet_aton() 转化的过程中出了点问题 需求目的:把一个 ip 地址使用 socket.inet_aton() 转化后和一个字符串组合,然后算出 MD5。 下面是 Python2.6 的实现代码: #! _ == '__main__': ip = '192.168.1.12' base_str = 'testSTR' ip_md5 = hashlib.md5(socket.inet_aton (ip) + base_str).digest().encode('hex') TypeError: can't concat bytes to str 提示说的是,socket.inet_aton(ip 也就是说 Python2.6 和 python3.4 中对于 socket.inet_aton(ip) 的实现是有差异的,查官方文档吧。

40731
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python伪造udp数据包

    self.protocol = proto self.checksum = 2 # will be filled by kernel self.source = socket.inet_aton (source) self.destination = socket.inet_aton(destination) def pack(self): ver_ihl 4s4sBBH', socket.inet_aton(src), socket.inet_aton(dst), 0,

    1.1K10

    MySQL其他类型常用函数

    INET_ATON(IP)函数 返回IP地址的网络字节序表示 ? INET_NTOA(num)函数 返回网络字节代表的IP地址 ? INET_ATON(IP)和INET_NTOA(num)函数主要的用途是将字符串的IP地址转换为数字表示的网络字节序,这样可以方便地进行IP或者网段的比较。 所以必然是个空集 要想实现上面的功能,就可用INET-ATON来实现,将IP地址转换为字节序后再比较。 ? MD5(str)函数 返回字符串str的MD5值 ?

    19230

    老大告诉我不要用字符串存IP地址,不兴~

    MySQL提供INET ATON()和 INET NTOA()函数在这两种表示方法之间转换。    INET_ATON() 将IP转换成整数。 算法:第一位乘256三次方+第二位乘256二次方+第三位乘256一次方 + 第四位乘256零次方 INET_NTOA() 将数字反向转换成IP SELECT INET_ATON('127.0.0.1') () 和 INET6_NTOA() 来转化: mysql> SELECT HEX(INET6_ATON('1030::C9B4:FF12:48AA:1A2B')); +--------------- 但整数存储需要使用INET_ATON、INET_NTOA等特定函数处理,可读性查,函数也会消耗额外CPU,经检验发现CPU开支微乎其微。

    13430

    如果要存 IP 地址,用什么数据类型比较好?大部人都会答错!

    mysql-performance-benefits-of-storing-integer-ip-addresses/ 使用无符号整数来存储也有缺点: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数 INET_ATON 如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1') --------------+ 1 row in set (0.00 sec) 对于IPv6来说,使用 VARBINARY同样可获得相同的好处,同时MySQL也提供了相应的转换函数,即 INET6_ATON

    13920

    面试官:如果要存ip地址,用什么数据类型比较好?

    mysql-performance-benefits-of-storing-integer-ip-addresses/ 使用无符号整数来存储也有缺点: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON 如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1') -----------------+ 1 row in set (0.00 sec) 对于IPv6来说,使用VARBINARY同样可获得相同的好处,同时MySQL也提供了相应的转换函数,即INET6_ATON

    32930

    由 Python2 和 Python3

    这几天在做一个功能实现的时候,需要把别人用 Python2.6 写好的脚步转成 Python3.4 实现,大部分地方转化都没啥问题,但是在 socket.inet_aton() 转化的过程中出了点问题, 需求目的:把一个 ip 地址使用 socket.inet_aton() 转化后和一个字符串组合,然后算出 MD5。 下面是 Python2.6 的实现代码: #! = '__main__': ip = '192.168.1.12' base_str = 'testSTR' ip_md5 = hashlib.md5(socket.inet_aton (ip) + base_str).digest().encode('hex') TypeError: can't concat bytes to str 提示说的是,socket.inet_aton(ip 也就是说 Python2.6 和 python3.4 中对于 socket.inet_aton(ip) 的实现是有差异的,查官方文档吧。

    24210

    SSDP协议的Python示例「建议收藏」

    __s.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_IF, # socket.inet_aton(intf) + socket.inet_aton('0.0.0.0')) # INFO: 添加到多播组 self. __s.setsockopt(socket.SOL_IP, socket.IP_ADD_MEMBERSHIP, socket.inet_aton(SSDP_ADDR) + socket.inet_aton __s.setsockopt(socket.SOL_IP, socket.IP_DROP_MEMBERSHIP, socket.inet_aton(SSDP_ADDR) + socket.inet_aton

    7430

    Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结

    转换函数: int inet_aton(const char *cp, struct in_addr *inp); in_addr_t inet_addr(const char *cp); in_addr_t ================================================= IPv4: IP字符串 ——》 网络字节流 inet_addr、inet_network、inet_aton (ip, &addr); //返回网络字节序 if(0 == r3){ printf("inet_aton return -1/n"); }else{ printf("inet_aton ip: %ld/n", addr.s_addr); } /***** 批量注释的一种方法 *****/ #if 0 r3 = inet_aton (ip, addr); if(0 == r3){ printf("inet_aton return -1/n"); }else{ printf("inet_aton

    3.5K30

    IP地址的一些冷知识,可用来进行绕过和欺骗

    69*256^1+79*256^0=654311424+10223616+17664+79=664552783 即以256为基底 mysql有个函数可以帮忙计算: mysql> select inet_aton ('115.239.210.27'); +-----------------------------+ | inet_aton('115.239.210.27') | +---------------- -------+ | 1945096731 | +-----------------------------+ 1 row in set (0.00 sec) mysql> SELECT INET_ATON ('127.0.0.1'), INET_ATON('127.1'); +------------------------+--------------------+ | INET_ATON('127.0.0.1 ') | INET_ATON('127.1') | +------------------------+--------------------+ | 2130706433 | 2130706433 |

    8610

    IP地址定位区间的问题分析

    ('127.0.0.1')),(inet_aton('192.168.1.1')); ERROR 1264 (22003): Out of range value for column 'ip' at > insert into ip_range values(inet_aton('127.0.0.1')); Query OK, 1 row affected (0.00 sec) 原来是这里的问题: > insert into ip_range values(inet_aton('192.168.1.1')); ERROR 1264 (22003): Out of range > insert into ip_range values(inet_aton('192.168.1.1')); Query OK, 1 row affected (0.00 sec) 这里需要提一下, 分别是inet_ntoa(数值转为IP),inete_aton(IP转为数值) > select (inet_ntoa(ip)) from ip_range; +-----------------+

    58480

    MySQL - 库表设计之IP和TIMESTAMP的处理

    MySQL 数据库内置了两个 IP 相关的函数 INET_ATON()、INET_NTOA(),可以实现 IP 地址和整数的项目转换。 mysql> select INET_ATON('127.0.0.1'); +------------------------+ | INET_ATON('127.0.0.1') | +--------

    12210

    面试官:如果要存ip地址,用什么数据类型比较好

    mysql-performance-benefits-of-storing-integer-ip-addresses/ 使用无符号整数来存储也有缺点 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON 如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1') ---------------+ 1 row in set (0.00 sec) 对于IPv6来说,使用VARBINARY同样可获得相同的好处,同时MySQL也提供了相应的转换函数,即INET6_ATON

    33730

    如果要存 IP 地址,用什么数据类型比较好?大部人都会答错!

    mysql-performance-benefits-of-storing-integer-ip-addresses/ 使用无符号整数来存储也有缺点: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON 如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1') ----------------+ 1 row in set (0.00 sec) 对于IPv6来说,使用VARBINARY同样可获得相同的好处,同时MySQL也提供了相应的转换函数,即INET6_ATON

    12730

    面试官:如果要存ip地址,用什么数据类型比较好

    mysql-performance-benefits-of-storing-integer-ip-addresses/ 使用无符号整数来存储也有缺点: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON 如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1') -----------------+ 1 row in set (0.00 sec) 对于IPv6来说,使用VARBINARY同样可获得相同的好处,同时MySQL也提供了相应的转换函数,即INET6_ATON

    14210

    面试官:如果要存 IP 地址,用什么数据类型比较好?

    mysql-performance-benefits-of-storing-integer-ip-addresses/ 使用无符号整数来存储也有缺点: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON 如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1') ----------------+ 1 row in set (0.00 sec) 对于IPv6来说,使用VARBINARY同样可获得相同的好处,同时MySQL也提供了相应的转换函数,即INET6_ATON

    35020

    【mysql】其他函数

    表示四舍五入后保留到小数点后n位 CONV(value,from,to) 将value的值进行不同进制之间的转换 INET_ATON ----------------+------------------+-------------------+ 1 row in set (0.00 sec) mysql> SELECT INET_ATON ('192.168.1.100'); +----------------------------+ | INET_ATON('192.168.1.100') | +-------------------

    10530

    面试官:如果要存 IP 地址,用什么数据类型比较好?99%人都会答错!

    mysql-performance-benefits-of-storing-integer-ip-addresses/ 使用无符号整数来存储也有缺点: 不便于阅读 需要手动转换 对于转换来说,MySQL提供了相应的函数来把字符串格式的IP转换成整数INET_ATON 如下所示: mysql> select inet_aton('192.168.0.1'); +--------------------------+ | inet_aton('192.168.0.1') -----------------+ 1 row in set (0.00 sec) 对于IPv6来说,使用VARBINARY同样可获得相同的好处,同时MySQL也提供了相应的转换函数,即INET6_ATON

    7620

    扫码关注腾讯云开发者

    领取腾讯云代金券