第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將 CIDR 子網(wǎng)掩碼轉(zhuǎn)換為 HEX 格式?

如何將 CIDR 子網(wǎng)掩碼轉(zhuǎn)換為 HEX 格式?

C#
青春有我 2022-11-21 16:47:09
告訴我如何得到一個(gè)等于FFFFFFFE它的值結(jié)果只EFFFF以相反的順序輸出并且沒有前兩個(gè)字符FFvar cidr = 23;var zeroBits = 32 - cidr;var result = uint.MaxValue;result &= (uint)((((ulong)0x1 << cidr) - 1) << zeroBits);result = (uint)IPAddress.HostToNetworkOrder((int)result);textBoxHex.Text = result.ToString("X");
查看完整描述

1 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

一種可能的解決方案是使用BitVector32類根據(jù)網(wǎng)絡(luò)掩碼的位長度創(chuàng)建位數(shù)組。

BitVector32如果您只想打印十六進(jìn)制表示,則返回的位掩碼就足夠了。
假設(shè)您還想以IPV4格式表示地址。在這種情況下,網(wǎng)絡(luò)掩碼當(dāng)然是倒置的。要將其轉(zhuǎn)換為有效的IpAddress,我們需要反轉(zhuǎn)字節(jié)順序。

IPAddress.HostToNetworkOrder不會(huì)直接將BitVector32.Data屬性返回的值轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)順序。
我們可以使用BitConverter.GetBytesArray.Reverse()/或 LINQ 的.Reverse()方法來做同樣的事情。

這就是所有需要的:

int cidr = 23;

var bits = new BitVector32(-1 << (32 - cidr));

要返回位掩碼的十六進(jìn)制表示,只需將其轉(zhuǎn)換為指定十六進(jìn)制格式的字符串:

.NET 中的格式化類型 (MSDN)


Console.WriteLine(bits.Data.ToString("X2"));

=> FFFFFE00

如果需要,將其轉(zhuǎn)換為一種IpAddress格式:


var bytes = BitConverter.GetBytes((uint)bits.Data);

var netMask = new IPAddress(bytes.Reverse().ToArray());


Console.WriteLine(netMask); 

=> 255.255.254.0


查看完整回答
反對 回復(fù) 2022-11-21
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)