【问题标题】:C# - WinRT - Convert IPv4 address from uint to string?C# - WinRT - 将 IPv4 地址从 uint 转换为字符串?
【发布时间】:2014-03-30 07:16:03
【问题描述】:

我有一个IPv4 地址作为uint 提供,我想将其转换为string(用于记录)。

我通常会在 C# 中使用 System.Net.IPAddress 构造函数来实现这一点……但似乎 System.Net.IPAddress 在 C# 中对于 WinRT/Windows Store 不可用。有没有人有等效的方法来进行这种转换?

谢谢。

【问题讨论】:

    标签: c# windows-runtime ipv4 uint


    【解决方案1】:

    有点“脏”,但似乎有效

            uint ip = 0xFFDF5F4F;
            var bytes = BitConverter.GetBytes(ip);
            string res = string.Join(".", bytes.Reverse());
    

    本例的输出为 255.223.95.79

    【讨论】:

    • 为我工作 - 谢谢! (除了我的 IP 已经在主机顺序中,所以我只是删除了 reverse())
    • 对于存储为 uint 的 IPv6 地址应该同样适用吗? (如果 . 更改为 :)
    • 根据定义,不能将 Ipv6 地址存储为 uint :) 单位只有 4 个字节。而且我不确定它是否适用于 long 或 Int64。 IPv6 的编码方式不同
    • 大声笑,对不起,我的错...是的,我将 IPv6 地址存储在一个字节 [16] 中。通常我会将该字节数组传递给 System.Net.IPAddress 构造函数。关于如何在没有 System.Net.IPAddress 的情况下将该字节数组格式化为 IPv6 地址字符串的任何提示? :)
    • 你可以尝试同样的方法,但我真的不知道结果会是什么:) 只取最后一行。但我认为 ipv6 不是逐字节格式化的
    猜你喜欢
    • 2011-05-11
    • 2012-06-29
    • 2022-10-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多