Ip和long互转

简介:
复制代码
// <summary>
        ///  将127.0.0.1形式的IP地址转换成十进制整数
        /// </summary>
        /// <param name="strIp"></param>
        /// <returns></returns>
        public long IpToLong(string strIp)
        {
            long[] ip = new long[4];
            int position1 = strIp.IndexOf(".");
            int position2 = strIp.IndexOf(".", position1 + 1);
            int position3 = strIp.IndexOf(".", position2 + 1);
            // 将每个.之间的字符串转换成整型  
            ip[0] = long.Parse(strIp.Substring(0, position1));
            ip[1] = long.Parse(strIp.Substring(position1 + 1, position2 - position1 - 1));
            ip[2] = long.Parse(strIp.Substring(position2 + 1, position3 - position2 - 1));
            ip[3] = long.Parse(strIp.Substring(position3 + 1));
            //进行左移位处理
            return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
        }

        /// <summary>
        /// 将十进制整数形式转换成127.0.0.1形式的ip地址 
        /// </summary>
        /// <param name="ip"></param>
        /// <returns></returns>
        public string LongToIp(long ip)
        {
            StringBuilder sb = new StringBuilder();
            //直接右移24位
            sb.Append(ip >> 24);
            sb.Append(".");
            //将高8位置0,然后右移16
            sb.Append((ip & 0x00FFFFFF) >> 16);
            sb.Append(".");
            //将高16位置0,然后右移8位
            sb.Append((ip & 0x0000FFFF) >> 8);
            sb.Append(".");
            //将高24位置0
            sb.Append((ip & 0x000000FF));
            return sb.ToString();
        }
复制代码

 


本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/p/4064776.html,如需转载请自行联系原作者
相关文章
|
10天前
|
人工智能 Java 数据库
Spring AI
Spring AI 为 Java 生态注入智能,提供统一抽象接口,简化大模型集成,助力开发者高效构建 AI 应用,推动企业智能化转型。
|
存储 消息中间件 负载均衡
深入理解RocketMQ广播消费
这篇文章我们聊聊广播消费,因为广播消费在某些场景下真的有奇效。笔者会从基础概念、实现机制、实战案例、注意事项四个方面一一展开,希望能帮助到大家。
深入理解RocketMQ广播消费
|
3月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
443 0
|
机器学习/深度学习 存储 人工智能
压缩大型语言模型(LLMs):缩小10倍、性能保持不变
尽管大规模语言模型(LLMs)在多种应用场景中表现出色,但其庞大的规模也带来了实际部署难题。本文探讨了通过模型压缩技术解决这些问题的方法,介绍了量化、剪枝和知识蒸馏三种主要压缩技术,并通过具体Python代码示例展示了如何将一个100M参数的文本分类模型压缩至52.8M参数,再通过4位量化进一步减小至原来的1/7,同时保持甚至提升性能。示例代码展示了从数据预处理、模型训练到评估的完整流程,证明了压缩技术的有效性。
638 6
|
6月前
|
存储 缓存 人工智能
阿里云Tair KVCache:打造以缓存为中心的大模型Token超级工厂
Tair KVCache 是阿里云推出的面向大语言模型推理场景的缓存加速服务,基于分布式内存池化和分级缓存体系,解决显存墙与带宽瓶颈问题。为万亿参数模型的高效推理提供技术保障,推动 AI 算力进化与规模化应用。
|
11月前
|
IDE 开发者 iOS开发
京东开源的 JD-Hotkey:高效热键管理的技术巅峰
【10月更文挑战第5天】在快节奏的工作与学习中,提高操作效率是每位技术爱好者不懈追求的目标。今天,我们将深入探讨京东开源的 JD-Hotkey 项目,它不仅是一个强大的热键管理工具,更是我们在日常工作中提升生产力的秘密武器。通过本文,你将了解到 JD-Hotkey 的核心功能、技术亮点以及在实际应用中的卓越表现,一同感受其带来的高效与便捷。
647 4
|
机器学习/深度学习 算法
【机器学习】比较朴素贝叶斯算法与逻辑回归算法
【5月更文挑战第10天】【机器学习】比较朴素贝叶斯算法与逻辑回归算法
|
11月前
|
消息中间件 存储 监控
RocketMQ Tag 详解!
本文详细介绍了 RocketMQ 中 Tag 的原理及其应用场景。Tag 是一种消息过滤机制,允许生产者在发送消息时指定标签,消费者据此选择性消费。文章通过源码分析展示了 Tag 在消息发送、存储及消费阶段的作用,并提供了完整的示例代码。尽管 Tag 功能简单高效,但也存在单一维度过滤等局限性。适合需要高效、低延迟消息传递的场景,如日志监控、电商系统等。
1178 2
|
Java
Java list中的对象转为list,list中的对象转为map
Java list中的对象转为list,list中的对象转为map
627 1
|
人工智能 分布式计算 Java
说说XXLJob分片任务实现原理?
说说XXLJob分片任务实现原理?
1192 0
说说XXLJob分片任务实现原理?

热门文章

最新文章