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

给出一个作为字符串的网络地址的"点地址"(如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‘)
所返回的值)。

* inet_ntoa(expr)

给定一个数字网络地址 (4 或 8 比特),返回作为字符串的该地址的电地址表示。
   *    
mysql> SELECT INET_NTOA(3520061480);

-> ‘209.207.224.40‘

转自:http://www.rocing.cn/?action=show&id=233

时间: 2024-10-13 22:51:43

MySQL的IP处理函数inet_aton()和inet_ntoa()的相关文章

Unix网络编程随手记——IP处理函数inet_aton()、gethostbyname()等

IP地址实质上就是一个32位的无符号整数,用如下结构体存放 1 struct in_addr 2 { 3 unsigned int s_addr; 4 }; 由于历史原因,虽然IP地址只是个标量,却用一个结构体来存储. 由于主机可以有不同的主机字节顺序,即大端机或小端机.但TCP/IP定义了统一的网络字节顺序,大端字节顺序. Unix提供了两个函数可在主机字节和网络字节间实现转换: 一.htonl()和ntohl() 在Linux系统下: #include <arpa/inet.h> 有些系统

mysql 存取ip方法

一,mysql的inet_aton:ip->num,inet_ntoa:number->ip. 1,创建表 CREATE TABLE iplog ( ip int(10) unsigned DEFAULT NULL, name char(10) DEFAULT NULL) 2,插入ip insert into iplog values(inet_aton(10.0.0.1),'nwip'); 3,取ip select inet_ntoa(ip) from iplog ; select * fr

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

当前很多应用都适用字符串char(15)来存储IP地址(占用16个字节),利用inet_aton()和inet_ntoa()函数,来存储IP地址效率很高,适用unsigned int 就可以满足需求,不需要使用bigint,只需要4个字节,节省存储空间,同时效率也高很多 mysql> create table jackbillow (ip int unsigned, name char(1)); Query OK, 0 rows affected (0.02 sec) mysql> inser

IP地址转换函数——inet_pton inet_ntop inet_aton inet_addr inet_ntoa

inet_pton NAME ????inet_pton - 将 IPv4 和 IPv6 地址从点分十进制转换为二进制 SYNOPSIS #include <arpa/inet.h> int inet_pton(int af, const char *src, void *dst); DESCRIPTION ????该函数将字符串src转换为af地址类型协议簇的网络地址,并存储到dst中.对于af参数,必须为AF_INET或AF_INET6 RETURN VALUE ????inept_pto

Mysql中的基础函数

时间函数 select curdate();    返回2014-09-12,不包含时分秒 select curtime();    返回14:13:22,不包含年月日 select now();        返回2014-09-12 10:46:17 select unix_timestamp(now());    unix_timestamp(date)返回date的UNIX时间戳 select unix_timestamp('2013-09-01'); Unix时间戳是1970-01-0

Mysql中常用的函数汇总

Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回值e(自然对数的底)的x次方floor(x) 返回小于x的最大整数值greatest(x1,x2,...,xn)返回集合中最大的值least(x1,x2,...,xn) 返回集合中最小的值ln(x) 返回x的自然对数log(x,y)返回x的以y为底的对数mod(x,y) 返回x/y的模(余数)pi(

Mysql研究之MySQL常用内置函数完全解析

说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. 3)在程序设计语言如C++中提供的函数,MySQL大部分也提供了,关于MySQL函数的完整信息,请参阅<MySQL参考手册> 一.字符串函数[比较常用,需要掌握] 1. concat(s1,s2,…,sn) #把传入的参数连接成一个字符串 selectconcat(‘abc’,’def’); selectconcat(

MySQL有关ip地址的优化存储

为什么要优化ip地址的存储? 很多时候,我们在操作mysql时,并为过分关心如何优化mysql的存储内容,提高访问速度,但是做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中不可忽略的一个重要部分,合理的使用一定的优化方式,证明你摆脱了入门级新手的称号. 在MySQL中没有直接提供IP类型字段,但提供有两个函数可以把IP与最大长度为10位数字类型互转,所以使用int类型存储IP比varchar类型存储IP地址性能要提升很多,减少不少空间.因为varchar是可变长形

Mysql中的常用函数:

1.字符串函数: (1).合并字符串 concat():// concat('M','y',"SQL",'5.5');== MySQL5.5//当传入的参数有一个值为NULL,返回的结果值为NULL concat_ws();// 指定分隔符插入到字符串中:concat_ws(":",'2017','09');==2017:09,但如果分隔符是NULL的话,结果就为NULL,参数是NULL,不影响结果 (2).比较字符串大小的函数: select strcmp(字符串