簡體   English   中英

C#將hex轉換為ip

[英]C# convert hex into ip

我有4a0e94ca等格式的十六進制值,我需要將它們轉換為IP,我怎么能在C#中做到這一點?

如果值表示IPv4地址,則可以使用long.Parse方法並將結果傳遞給IPAddress構造函數

var ip = new IPAddress(long.Parse("4a0e94ca", NumberStyles.AllowHexSpecifier));

如果它們表示IPv6地址,則應將十六進制值轉換為字節數組 ,然后使用此IPAddress構造函數重載來構造IPAddress。

那么,采用這種形式的IP格式:

192.168.1.1

要將它組合成一個數字,你可以將每個部分或它們放在一起,同時將它移到左邊,8位。

long l = 192 | (168 << 8) | (1 << 16) | (1 << 24);

因此,您可以針對您的號碼撤消此過程。

像這樣:

int b1 = (int) (l & 0xff);
int b2 = (int) ((l >> 8) & 0xff);
int b3 = (int) ((l >> 16) & 0xff);
int b4 = (int) ((l >> 24) & 0xff);

- 編輯

其他海報可能有“更清潔”的方式在C#中使用它,所以可能在生產代碼中使用它,但我認為我發布的方式是學習IP格式的好方法。

檢查C#將整數轉換為十六進制,然后再返回

    var ip = String.Format("{0}.{1}.{2}.{3}",
    int.Parse(hexValue.Substring(0, 2), System.Globalization.NumberStyles.HexNumber),
    int.Parse(hexValue.Substring(2, 2), System.Globalization.NumberStyles.HexNumber),
    int.Parse(hexValue.Substring(4, 2), System.Globalization.NumberStyles.HexNumber),
    int.Parse(hexValue.Substring(6, 2), System.Globalization.NumberStyles.HexNumber));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM