MySQL中将IP转化为int类型
发布日期:2016-4-20 18:4:54
MySQL中将IP转化为int类型 做电信的项目,或者是银行、第三方支付业务等高保密,需要设计到存储IP的业务中,为了要节省空间与性能,大家通常把字符串char(15)存储IP地址(占用16个字节)改为使用unsigned int来存储。 unsigned int只需要4个字节。用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法如下所示: select inet_aton('192.168.1.200'); // 结果为3232235976 select inet_ntoa('3232235976'); //192.168.1.200 更高级的使用还有很多,比如说按网段分组。这里需要注意linux C中有个函数inet_aton可以将IPv4的字符串地址('192.168.1.200')转换成网络地址结构体 struct in_addr。 但是在mysql中也有inet_aton这个函数,它也是将字符串IPv4地址转化成整形。经过转换后的4位整形却是主机字节序的,与linux的库函数是相反的。在linux中,还有inet_ntoa,是将网络字节序的整形转化成字符串("192.168.1.200")的IPv4地址。而mysql的inet_ntoa则是将主机字节序的整形转化成字符串。
|