PHP
echo ip2long('192.168.1.38');
输出:3232235814
MYSQL
SELECT INET_ATON('192.168.1.38');
输出:3232235814
两个函数返回的结果是一样的,都是A*256*256*256+B*256*256+C*256+D的算法
192*256*256*256+168*256*256+1*256+38 = 3 232 235 814
反过来,从int转换为IP地址分别是php的long2ip()和mysql的INET_ATON()。
mysql存储这个值是字段需要用int UNSIGNED。不用UNSIGNED的话,128以上的IP段就存储不了了。
传统的方法,创建varchar(15),需要占用15个字节,而改时使用int只需要4字节,可以省一些字节。
php存入时:$ip = ip2long($ip);
mysql取出时:SELECT INET_ATON(ip) FROM table ...
php取出时,多一步:$ip = long2ip($ip);
转换以前的数据:
1.把以前的varchar()数据转换为int型的SQL语句:
UPDATE `hx_table` SET ip =INET_ATON(ip) WHERE INET_ATON(ip) is NOT NULL
2.把字段更改为int型:
ALTER TABLE `hx_table` CHANGE `ip` `ip` INT UNSIGNED NOT NULL
3.程序做相应修改上传,完成。
分享到:
相关推荐
MySQL数据库在IT行业中被广泛用于存储和管理各种类型的数据,包括IP地址库和手机归属地址库。`tel&ip.sql`文件是一个特定于MySQL的SQL脚本,它包含了创建、填充或更新这两种类型数据库的指令。以下是这个文件可能...
MySQL中并没有专门的IP地址数据类型,但可以通过使用整数类型(如INT)结合内置函数来达到高效存储和操作IP地址的目的。具体来说,可以使用INET_ATON()函数将IP地址转换为整数,然后用INT类型存储这个数字;相反,要...
在这种情况下,使用INT类型存储IP地址,结合`inet_aton()`和`inet_ntoa()`函数进行转换,既满足了存储需求,又实现了性能优化。 总结来说,通过使用MySQL的`inet_aton()`和`inet_ntoa()`函数,配合INT类型存储IP...
IP地址换算法是网络技术中的一个重要环节,尤其是在涉及跨国业务时,能够快速准确地判断IP地址的地理位置,对于提升网络安全性和用户体验具有重要意义。通过本文介绍的方法,不仅能够实现IP地址的高效转换,还能构建...
### 用Python将IP地址在整型和字符串之间轻松转换 #### 前言 在处理网络相关的数据时,我们经常需要与IP地址打交道。在实际应用中,将IP地址作为字符串存储会占用较多的空间,并且在进行比较或计算时效率较低。...
在MySQL中,这样的数据通常会存储在一个或多个表格中,每个IP段可能有一个开始和结束的IP地址,同时包含省份名称等附加信息。例如,可能有以下结构的表格: ```sql CREATE TABLE `ip_database` ( `id` INT AUTO_...
2. **字段类型**:考虑到IP地址是以十进制形式存储,建议将“ip1”和“ip2”字段的数据类型设置为整型(如INT)。 3. **表结构设计**:在创建数据库表时,需要定义三个字段,分别对应IP地址段的起始值、结束值以及...
在此过程中,可能会涉及到数据类型转换,因为Oracle和Mysql的数据类型略有不同,如Oracle的NUMBER可能需要转换为Mysql的DECIMAL或INT。 4. **约束和索引重建**:在数据迁移完成后,转换器会尝试重建在Oracle中的表...
对于SQL版本的IP地址库,这意味着数据可能存储在表格中,每一行代表一个IP地址,可能有多个列来存储IP地址、开始和结束范围、地理位置信息等。例如,一个可能的结构如下: ```sql CREATE TABLE IPAddresses ( ID ...
在MySQL数据库中,存储IP地址通常有两种方法:一种是直接以字符串形式存储,另一种是将IP地址转换为整型数值存储。本篇文章主要探讨后者,即利用MySQL的`inet_aton()`和`inet_ntoa()`两个函数进行IP地址的高效存储和...
首先我们要先了解一下IP地址转换为整型(严格来说应该说是长整型)的原理~ 【转换原理】:假设IP为:w.x.y.z,则IP地址转为整型数字的计算公式为:intIP = 256*256*256*w + 256*256*x + 256*y + z 【PHP的互转】:PHP...
在编程和数据库操作中,有时需要将IP地址转换为整数或者从整数还原回IP地址,这时就用到了`inet_aton()`和`inet_ntoa()`这两个函数。 `inet_aton()`函数是用于将一个点分十进制的IP地址字符串转换为32位无符号整数...
在MySQL中,处理IP地址数据时,我们经常会遇到需要存储和比较IP地址的情况。为了高效地操作IP地址,MySQL提供了一对函数:`INET_ATON` 和 `INET_NTOA`。这两个函数可以帮助我们将IP地址转换成整型数值,从而方便存储...
- 在数据库中存储IP地址时,可以使用`INET_ATON`将其转换为整数形式,以节省存储空间并提高查询效率。 - 当需要展示或分析IP地址时,可以通过`INET_NTOA`将其恢复为原始格式。 **2. 格式化数字** - **函数介绍**...
在互联网领域中,IP地址的定位与分析具有重要的应用价值。本文将详细介绍如何构建一个基于MySQL的IP数据库系统,并解释其用途及实现方法。 #### 一、项目背景及意义 随着互联网技术的发展,用户的位置信息变得...
MySQL驱动mysql-connector-net-6.3.6是MySQL数据库与.NET应用程序之间的桥梁,它允许开发者在C#、VB.NET或其他.NET支持的语言中方便地访问和操作MySQL数据库。这款驱动程序由Oracle公司提供,是MySQL .NET连接器的一...