栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

往MySQL数据库存储IPv4是选择无符号整型数据类型还是字符串数据类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

往MySQL数据库存储IPv4是选择无符号整型数据类型还是字符串数据类型

MySQL数据使用字符串存储IP地址
在保存IPv4地址时,一个IPv4最小需要7个字符,最大需要15个字符,所以使用VARCHAr(15)保存变长的字符串

MySQL数据库使用无符号整数存储IP地址
在保存IPv4地址时,一个IPv4使用4个字节的无符号整数来存储

MySQL数据库本身提供了相应的函数来支持字符串IPv4和数值类型的相互转换
使用INET_ATON函数将字符串格式的IP转换成整数

mysql> select inet_aton('192.168.0.1');
+--------------------------+
| inet_aton('192.168.0.1') |
+--------------------------+
|               3232235521 |
+--------------------------+
1 row in set (0.00 sec)

使用INET_NTOA将整数格式的IP转换成字符串

mysql> select inet_ntoa(3232235521);
+-----------------------+
| inet_ntoa(3232235521) |
+-----------------------+
| 192.168.0.1           |
+-----------------------+
1 row in set (0.00 sec)

编写C#代码实现字符串IPv4和数值类型的相互转换

public class IpUintUtils
{
	/// 
	/// 把字符串IP转换成uint
	/// 
	/// 
	/// 
	public static long ip2uint(String ipStr)
	{
		char[] chars = { '.', ' ' };
		String[] ip = ipStr.Split(chars);
		return (uint.Parse(ip[0]) << 24) + (uint.Parse(ip[1]) << 16)
				+ (uint.Parse(ip[2]) << 8) + uint.Parse(ip[3]);
	}

	/// 
	/// 把uint转换成字符串IP
	/// 
	/// 
	/// 
	public static String uint2Ip(uint ipUint)
	{
		StringBuilder ip = new StringBuilder();
		ip.Append(ipUint >> 24).Append(".");
		ip.Append((ipUint >> 16) & 0xFF).Append(".");
		ip.Append((ipUint >> 8) & 0xFF).Append(".");
		ip.Append(ipUint & 0xFF);
		return ip.ToString();
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995610.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号