程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#中將IP地址轉換成無符號整形數的方法與逆變換方法

c#中將IP地址轉換成無符號整形數的方法與逆變換方法

編輯:C#入門知識

我們知道 IP地址就是給每個連接在Internet上的主機分配的一個32bit地址。

按照TCP/IP協議規定,IP地址用二進制來表示,每個IP地址長32bit,比特換算成字節,就是4個字節。
而c#中int32的數就是四個字節的,但是符號要占掉一位所以就不夠了,但是無符號的 UInt32 就沒有這樣的問題。

所以理論上講:UInt32是可以完整保存一個IP地址的。那下面的兩個方法就是對IP與UInt32之間的互轉換。

 

        public static string Int2IP(UInt32 ipCode) {
            byte a = (byte)((ipCode & 0xFF000000) >> 0x18);
            byte b = (byte)((ipCode & 0x00FF0000) >> 0xF);
            byte c = (byte)((ipCode & 0x0000FF00) >> 0x8);
            byte d = (byte)(ipCode & 0x000000FF);
            string ipStr = String.Format("{0}.{1}.{2}.{3}", a, b, c, d);
            return ipStr;
        }

        public static UInt32 IP2Int(string ipStr) {
            string[] ip = ipStr.Split(.);
            uint ipCode = 0xFFFFFF00 | byte.Parse(ip[3]);
            ipCode = ipCode & 0xFFFF00FF | (uint.Parse(ip[2]) << 0x8);
            ipCode = ipCode & 0xFF00FFFF | (uint.Parse(ip[1]) << 0xF);
            ipCode = ipCode & 0x00FFFFFF | (uint.Parse(ip[0]) << 0x18);
            return i

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved