IP转long与string相互转化方法

  mysql用法:

 select inet_aton('192.168.2.1'); -- 192.168.2.1  3232236033
 
 select inet_ntoa(3232236033);

 

  c#用法:

        public static string IntToIp(long ipInt)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append((ipInt >> 24) & 0xFF).Append(".");
            sb.Append((ipInt >> 16) & 0xFF).Append(".");
            sb.Append((ipInt >> 8) & 0xFF).Append(".");
            sb.Append(ipInt & 0xFF);
            return sb.ToString();
        }

        /// <summary>
        /// long 转ip
        /// </summary>
        /// <param name="ip"></param>
        /// <returns></returns>
        public static long IpToInt(string ip)
        {
            string[] items = ip.Split('.');
            //这里|可以换成+ 因为转化二进制 后面的位数都是0 所以能用 |
            return long.Parse(items[0]) << 24
                    | long.Parse(items[1]) << 16
                    | long.Parse(items[2]) << 8
                    | long.Parse(items[3]);
        }

 

  经测试,sql与c#k 方法两者转换结果是一样的

posted @ 2021-04-12 17:53  低调码农哥!  阅读(331)  评论(0)    收藏  举报