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();
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM