5
A
回答
16
只是爲了好玩:
Console.WriteLine(IPAddress.Parse("192.168.1.33").GetAddressBytes()[3]);
-1
這可能是矯枉過正,但一個簡單的正則表達式也將這樣的伎倆:
(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})
+0
這似乎太多了一個簡單的問題。 –
-1
記住什麼是IP地址,它是一個32位(4字節)的數字。所以用子網掩碼掩蓋地址實際上是正確的方式。如果你總是想要一個255.255.255.0的子網掩碼,就像你的問題所暗示的那樣,你可以用0xFF的號碼&來獲取該號碼。
但是,如果您不關心效率,並且只將地址作爲字符串,則分割爲「。」。只是罰款... :)
1
只是爲了好玩,我寫這將有最少的開銷(字符串操作等)的版本。 @rushui雖然有正確的答案。
static void Main(string[] args)
{
Console.WriteLine(OctetInIP("10.1.1.100", 0));
Console.ReadLine();
}
static byte OctetInIP(string ip, int octet)
{
var octCount = 0;
var result = 0;
// Loop through each character.
for (var i = 0; i < ip.Length; i++)
{
var c = ip[i];
// If we hit a full stop.
if (c == '.')
{
// Return the value if we are on the correct octet.
if (octCount == octet)
return (byte)result;
octCount++;
}
else if (octCount == octet)
{
// Convert the current octet to a number.
result *= 10;
switch (c)
{
case '0': break;
case '1': result += 1; break;
case '2': result += 2; break;
case '3': result += 3; break;
case '4': result += 4; break;
case '5': result += 5; break;
case '6': result += 6; break;
case '7': result += 7; break;
case '8': result += 8; break;
case '9': result += 9; break;
default:
throw new FormatException();
}
if (result > 255)
throw new FormatException();
}
}
if (octCount != octet)
throw new FormatException();
return (byte)result;
}
相關問題
- 1. Android獲得最佳位置
- 2. 獲得__libc_stack_end的64位值的最佳方法是什麼?
- 3. 以字節爲單位獲取UTF-8字符串長度的最佳方法?
- 4. Android將字節數組轉換爲位圖的最佳方法?
- 5. 獲得枚舉標誌所有位的最佳方法?
- 6. 獲得最接近元素的最佳方法
- 7. 從字符串中獲取特定位置的最佳方法
- 8. 從Android IntentService獲取位圖的最佳方式獲得
- 9. 最有效的方法來獲得最後的初始?
- 10. 最佳方法
- 11. 最佳方法
- 12. 使用Python獲取IP地址中的最後一個字節使用Python獲取IP地址的最後一個八位字節
- 13. 獲得快速且準確的位置的最佳方式
- 14. 存儲位圖的最佳方法
- 15. 管理位置的最佳方法?
- 16. 最佳的位置更新電池節省方法
- 17. 廚師 - 尋找更好的方法來查找IP地址的最後八位字節。
- 18. 從街道方向獲得準確座標的最佳方法
- 19. 什麼是從NSImage對象獲得最高位圖表示的最佳方式
- 20. gosnmp從SNMP PDU獲取八位字節
- 21. MySQL的:最佳實踐來獲得最後一個記錄
- 22. 如何得到一個字節的最後2位
- 23. 「後退按鈕」的最佳方法
- 24. 獲得上個月第一天和最後一天的最佳方式?
- 25. 什麼是獲得第n個最後記錄的最佳方式?
- 26. 獲得列表中最低項目的最佳方式
- 27. 如何獲得數字的最後一位數字?
- 28. 以字節爲單位存儲文件大小的最佳方法?
- 29. 爲n字節整數實現按位運算的最佳方法
- 30. 獲取iframe對象的最佳方法
這*是*通過書本完成的方式。 – LukeH
你不應該通過索引得到最後一個字節嗎? 'var bytes = IPAddress.Parse(「192.168.1.33」)。GetAddressBytes(); var value = bytes [bytes.Length - 1];'這會使它與IPv6等兼容。 –
1+ ipv4或ipv6這是方式.... – Damith