C#.Net Core 3.1:使用System.Net.IPAddress字节顺序交换时遇到困难

问题描述 投票:2回答:1

很抱歉问到什么应该是一件简单的事情,但是我一直在尝试使用IPAddress.NetworkToHostOrderIPAddress.HostToNetworkOrder无济于事。我在Windows钻机上,小端。这是让我感到困惑的微小代码:

using System;
using System.Net;

public class Program
{
    public static void Main()
    {
        int addr = 1;
        Console.WriteLine($"{IPAddress.NetworkToHostOrder(addr)}");
        Console.WriteLine($"{IPAddress.HostToNetworkOrder(addr)}");
    }
}

此输出为:

16777216
16777216

其中之一的输出应该是1,对吧?我已经放弃了,写了一个替换来处理字节排序问题,但是这让我发疯了,我一直无法使用IPaddress

c# ip-address system.net
1个回答
1
投票

这些函数假定您已按给定的字节顺序提供了输入值,并且始终希望将字节顺序交换为相反的字节顺序。他们无法知道您提供的值的字节顺序。因此,他们俩总是交换给他们的东西的顺序。

© www.soinside.com 2019 - 2024. All rights reserved.