gpt4 book ai didi

c# - 将 IP 转换为二进制并转换回字符串

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:39 24 4
gpt4 key购买 nike

我想将 ipv4 和 ipv6 地址都转换为二进制,然后再转换回字符串。

例如 192.168.1.1 到 11000000.10101000.00000001.00000001 以及 11000000.10101000.00000001.00000001 到 192.168.1.1

我找到这篇文章:link1但它只适用于 ipv4。

我还找到了这个:link2所以我尝试了这个:

IPAddress ip = IPAddress.Parse("192.168.1.1");
textBox1.Text = ip.GetAddressBytes().ToString();

但它在文本框中显示 System.Byte[]。

长话短说,我想使用在 ipv4 和 ipv6 中都有效的稳定转换方法。(dll 可能会更好。)

谢谢。

最佳答案

转换为二进制:

var address = IPAddress.Parse("192.168.1.1");
var bytes = address
.GetAddressBytes()
.Select(number => Convert.ToString(number, 2).PadLeft(8, '0'));
var binaryAddress = string.Join(".", bytes);
// => 11000000.10101000.00000001.00000001

然后转换回来:

var bytes = binaryAddress
.Split('.')
.Select(@byte => Convert.ToInt32(@byte, 2));
var address = IPAddress.Parse(string.Join(".", bytes));
// => 192.168.1.1

关于c# - 将 IP 转换为二进制并转换回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31693789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com