【发布时间】:2015-07-30 02:41:23
【问题描述】:
我想将 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 可能会更好。)
谢谢。
【问题讨论】:
-
textBox1.Text = string.Join(".", ip.GetAddressBytes().Select(b => Convert.ToString(b, 2).PadLeft(8, '0')));是做什么的? -
谢谢。但我认为它只适用于 ipv4。我怎样才能把它转换回来?
-
不太清楚你要做什么,因为
11000000.10101000.00000001.00000001不是二进制的——它是一个包含 1、0 和 dots 的字符串。 -
是的。我的意思是二进制字符串。我的错。对不起。
-
您不能只在数组上调用
ToString()并期望出现默认值以外的其他内容。您需要将每个元素格式化为字符串并加入结果
标签: c#