C++ 在C语言中,inet_addr函数等价于什么#

C++ 在C语言中,inet_addr函数等价于什么#,c++,c#-3.0,types,wrapper,C++,C# 3.0,Types,Wrapper,我需要知道如何使用像inet_addr(“192.168.0.2”)这样的IP地址;在C++中 这里返回的是德沃德。我的C#包装器将此字段视为Int 有人能帮你消除这个误解吗?如果它是.net,我假设它是一个小小的endian机器,所以你“可以”按如下方式操作: address = (192 << 0) | (168 << 8) | (0 << 16) | (2 << 24); address=(192您应该使用IPAddress类。它会给您带来

我需要知道如何使用像inet_addr(“192.168.0.2”)这样的IP地址;在C++中 这里返回的是德沃德。我的C#包装器将此字段视为Int


有人能帮你消除这个误解吗?

如果它是.net,我假设它是一个小小的endian机器,所以你“可以”按如下方式操作:

address = (192 << 0) | (168 << 8) | (0 << 16) | (2 << 24);

address=(192您应该使用IPAddress类。它会给您带来一些麻烦,因为它试图阻止您依赖IP4地址。address成员已声明为过时。以下是解决方法:

using System;
using System.Net;

class Program {
    static void Main(string[] args) {
        var addr = IPAddress.Parse("192.168.0.2");
        int ip4 = BitConverter.ToInt32((addr.GetAddressBytes()), 0);
        Console.WriteLine("{0:X8}", ip4);
        Console.ReadLine();
    }
}
输出:0200A8C0


请注意,地址的网络顺序正确(大端)

你到底想做什么?C已经在整个IP栈上有包装了——你不需要对这些调用。我在C++库中有一个包装器,我只是阅读文档来使用这个库,但是例子是C++代码,在一些地方我不太明白。ESS到DWORD类型字段,其中我的包装有int字段。所以我想知道如何转换IP地址字符串(例如“192.1680.2”)并将其设置为int字段。如果您显示C++代码和C代码,您可能会有疑问。