侧边栏壁纸
博主头像
程彬彬博主等级

业精于勤 荒于嬉 行成于思 毁于随

  • 累计撰写 101 篇文章
  • 累计创建 26 个标签
  • 累计收到 20 条评论

目 录CONTENT

文章目录

MySql 使用整形存储IP

程彬彬
2018-11-20 / 0 评论 / 0 点赞 / 3,367 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2019-06-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告 广告

MySQL 有这么两个函数可以直接使用: INET_ATON() 将IP转为十进制数字 INET_NTOA() 将数字转换为IP

file file

Java 转换方法

public static Long getIPNum(final String IP) {
		Long IPNum = 0L;
		final String IPStr = IP.trim();
		if (IP != null && IPStr.length() != 0) {
			final String[] subips = IPStr.split("\\.");
			for (final String str : subips) {
				IPNum = IPNum << 8;
				IPNum += Integer.parseInt(str);
			}
		}
		return IPNum;
	}

public static String getIPString(final Long IPNum) {
    final Long[] andNumbers = {0xff000000L, 0x00ff0000L, 0x0000ff00L, 0x000000ffL};
    final StringBuilder IPStrSb = new StringBuilder();
    for (int i = 0; i < 4; i++) {
        IPStrSb.append(String.valueOf((IPNum & andNumbers[i]) >> 8 * (3 - i)));
        if (i != 3) {
            IPStrSb.append(".");
        }
    }
    return IPStrSb.toString();
}
0
广告 广告

评论区