將IP地址與Int轉換


 

有時會碰到這樣的需求,需要將IP地址轉換為整數存放,在讀取時再轉換為IP地址格式

1、將IP字符串轉換為整型保存

代碼如下:

            string address;
int intAddress;
string ipAddress;
while ((address = Console.ReadLine()) != "\\0")
{
//將IP地址轉換為字節數組
byte[] IPArr = IPAddress.Parse(address).GetAddressBytes();

//顯示出來字節數組存放的內容,結果以16進制顯示
Console.WriteLine(BitConverter.ToString(IPArr, 0, IPArr.Length));

//將字節數組轉換為整型
intAddress = BitConverter.ToInt32(IPArr, 0);
Console.WriteLine(intAddress);

}

Console.ReadLine();

運行結果:

C0-A8-0A-11  是IPArr轉換為string類型時的輸出結果,也是192 168 10 17 的16進制

285911232 是IPArr轉換為整數的結果,C0是最低位,也就是說該整數是由 11-0A-A8-C0轉換成10進制的來的,大家可以試試!

 

2、將IP轉換的整型數組轉換為IP格式

其實是第一部分的逆過程,先將整型轉換為字節數組,再將字節數組轉換為IP

代碼如下:

 
//將整型轉換為IP
ipAddress = new IPAddress(BitConverter.GetBytes(intAddress)).ToString();

運行結果:

最后一行即為原來的IP

 

3、總結

  兩個過程是互逆的過程,IP轉整型:利用IPAddress.GetAddressBytes(),獲取IP的字節數組格式,然后利用BitConverter.ToInt32(),來轉換為Int.涉及到的算法,無非是將字節數組轉換為16進制,然后數組的第一個數值為最低位這樣的順序來轉換為10進制數得到整型數據;整型轉IP則將這個過程反過來。

 

 


免責聲明!

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



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